mylog 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/bin/bash
  2. # 交互式命令行模式
  3. interactive_mode() {
  4. while true; do
  5. read -p "请输入命令 (c: 清空日志, p: 打印日志, l: 查看日志, t: 实时查看日志, m: 复制错误信息, q: 退出): " cmd
  6. case $cmd in
  7. c)
  8. > storage/logs/laravel-$(date +%Y-%m-%d).log
  9. echo "日志已清空。"
  10. ;;
  11. p)
  12. errors=$(cat storage/logs/laravel-$(date +%Y-%m-%d).log | grep "ERROR")
  13. if [ -n "$errors" ]; then
  14. echo
  15. cat storage/logs/laravel-$(date +%Y-%m-%d).log | grep "ERROR"
  16. echo
  17. else
  18. echo "未发现错误信息。"
  19. fi
  20. ;;
  21. l)
  22. less storage/logs/laravel-$(date +%Y-%m-%d).log
  23. ;;
  24. t)
  25. tail -f -n 1000 storage/logs/laravel-$(date +%Y-%m-%d).log
  26. ;;
  27. q)
  28. exit 0
  29. ;;
  30. m)
  31. if [ "$(uname)" == "Darwin" ]; then
  32. errors=$(cat storage/logs/laravel-$(date +%Y-%m-%d).log | grep "ERROR")
  33. if [ -n "$errors" ]; then
  34. cat storage/logs/laravel-$(date +%Y-%m-%d).log | grep -m1 "ERROR" | \
  35. awk '{print $0,"\n\n","上面是错误日志,请帮我修复这个bug,并始终用中文语言回答。"}' | pbcopy
  36. echo "已复制错误信息到剪贴板,你可以问AI助手,Ta会给你解决错误。"
  37. else
  38. echo "未发现错误信息。"
  39. fi
  40. else
  41. errors=$(cat storage/logs/laravel-$(date +%Y-%m-%d).log | grep "ERROR")
  42. if [ -n "$errors" ]; then
  43. echo "正在复制错误信息到剪贴板..."
  44. cat storage/logs/laravel-$(date +%Y-%m-%d).log | grep "ERROR" | pbcopy
  45. echo "已复制错误信息到剪贴板,你可以问AI助手,他会给你解决错误。"
  46. else
  47. echo "未发现错误信息。"
  48. fi
  49. fi
  50. ;;
  51. *)
  52. echo "无效命令。使用 'c' 清空日志, 'p' 打印日志, 'l' 查看日志, 't' 实时查看日志, 'm' 复制错误信息, 'q' 退出。"
  53. ;;
  54. esac
  55. done
  56. }
  57. interactive_mode