在 while-read 循环中等待键盘输入

use*_*408 2 shell-script user-input read

我有一个 bash 脚本,其结构如下:

\n\n
while read foo bar baz;\ndo\n    echo "Processing $foo $bar $baz"\n    # more code here\ndone < /etc/somefile\n
Run Code Online (Sandbox Code Playgroud)\n\n

在循环内,我希望脚本等待键盘输入(基本上只是“按 Enter 继续”。但是,循环内的以下代码

\n\n
echo "Press [ENTER] to continue"\nread -s\n
Run Code Online (Sandbox Code Playgroud)\n\n

不会\xe2\x80\x99t 导致脚本停在那里\xe2\x80\x94 显然它从提供的文件而不是键盘获取输入。如何强制它从键盘读取?

\n

use*_*408 6

read除非明确指定,否则将文件送入循环将影响循环中的每个实例。以下工作有效:

echo "Press [ENTER] to continue"
read -s < /dev/tty
Run Code Online (Sandbox Code Playgroud)