mylog 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #!/bin/bash
  2. # 交互式命令行模式
  3. interactive_mode() {
  4. while true; do
  5. read -p "Enter command (c: clear log, p: print log, l: less log, t: tail log, q: quit): " cmd
  6. case $cmd in
  7. c)
  8. echo "Clearing log..."
  9. > storage/logs/laravel.log
  10. ;;
  11. p)
  12. cat storage/logs/laravel.log
  13. ;;
  14. l)
  15. less storage/logs/laravel.log
  16. ;;
  17. t)
  18. tail -f -n 1000 storage/logs/laravel.log
  19. ;;
  20. q)
  21. exit 0
  22. ;;
  23. *)
  24. echo "Invalid command. Use 'c' to clear, 'p' to print, 'l' to less, 't' to tail, or 'q' to quit."
  25. ;;
  26. esac
  27. done
  28. }
  29. # 处理命令行参数
  30. if [ $# -eq 0 ]; then
  31. interactive_mode
  32. else
  33. case "$1" in
  34. -c)
  35. echo "Clearing log..."
  36. > storage/logs/laravel.log
  37. ;;
  38. -p)
  39. cat storage/logs/laravel.log
  40. ;;
  41. -l)
  42. less storage/logs/laravel.log
  43. ;;
  44. -t)
  45. tail -f -n 1000 storage/logs/laravel.log
  46. ;;
  47. -h)
  48. echo "Usage: $0 [-c|-p|-l|-t|-h]"
  49. echo " -c: clear log"
  50. echo " -p: print log"
  51. echo " -l: less log"
  52. echo " -t: tail log (last 1000 lines, follow mode)"
  53. echo " -h: show this help message"
  54. echo " No arguments: enter interactive mode"
  55. ;;
  56. *)
  57. echo "Invalid option. Use '$0 -h' for help."
  58. exit 1
  59. ;;
  60. esac
  61. fi