Yin Bin 4 months ago
parent
commit
911d739b78
1 changed files with 19 additions and 1 deletions
  1. 19 1
      script/bin/mylog

+ 19 - 1
script/bin/mylog

@@ -2,8 +2,15 @@
 
 # 交互式命令行模式
 interactive_mode() {
+    # 设置终端为非规范模式,不需要按回车即可读取输入
+    old_tty=$(stty -g)
+    stty raw -echo
+
     while true; do
-        read -p "请输入命令 (c: 清空日志, p: 打印日志, l: 查看日志, t: 实时查看日志, m: 复制错误信息, q: 退出): " cmd
+        echo -en "\r请输入命令 (c: 清空日志, p: 打印日志, l: 查看日志, t: 实时查看日志, m: 复制错误信息, q: 退出): "
+        cmd=$(dd bs=1 count=1 2>/dev/null)
+        echo # 换行
+
         case $cmd in
             c)
                 > storage/logs/laravel.log
@@ -20,12 +27,23 @@ interactive_mode() {
                 fi
                 ;;
             l)
+                # 恢复终端设置以便less命令正常工作
+                stty $old_tty
                 less storage/logs/laravel.log
+                # 重新设置非规范模式
+                stty raw -echo
                 ;;
             t)
+                # 恢复终端设置以便tail命令正常工作
+                stty $old_tty
                 tail -f -n 1000 storage/logs/laravel.log
+                # 重新设置非规范模式
+                stty raw -echo
                 ;;
             q)
+                # 恢复终端设置后退出
+                stty $old_tty
+                echo "退出程序"
                 exit 0
                 ;;
             m)