bash - 在 while 循环中等待按键并停止脚本

标签 bash

我想等待按键并在按下字母时退出 q .
脚本不等待 key 。如何纠正?

while read line
do
    ...
    while :
    do
        read -n 1 key

        if [[ $key = q ]]
        then
            break
        fi
    done
done < $1

最佳答案

read读取输入。

在您的脚本中,输入更改为 $1 .

第一层while循环正在从文件中读取一行,该文件的名称存储在 $1 中。 , 和 read -n 1 key从同一个文件中读取并存储下一行的第一个字符。

试一试:

while read line ; do
  while : ; do
    read -n 1 key <&1
    if [[ $key = q ]] ; then
      break
    fi
  done
done < $1
<&1是标准输入。

关于bash - 在 while 循环中等待按键并停止脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37242631/

相关文章:

linux - `${1+/$1}` 在 Bash 中意味着什么?

linux - 使用 cron 防止 Bash 脚本并行运行或重叠

bash - Linux/Unix Bash 脚本如何获得自己的 PID?

string - 在 Bash 中用另一个字符替换一个字符

bash - 为什么在 dockerfile run 指令的/bin/bash -c "..."部分中的 echo $VARIABLE 在 docker build 上返回空值?

linux - 停止意外输入的 bash 命令,该命令尚未执行,但在长时间持续的过程后会立即覆盖文件?

linux - bash:基于字符串值的条目过滤

linux - 从单个用户导出时在所有 shell 中重复的环境变量

bash - 这个错误是什么意思? (SC2129 : Consider using { cmd1; cmd2; } >> file instead of individual redirects.)

linux - 示例生成的进程处于事件状态并退出代码