一尘不染

Linux相当于DOS暂停是什么?

linux

我有一个Bash shell脚本,我想在其中暂停执行,直到用户按下某个键为止。在DOS中,可以使用“
pause”命令轻松完成此操作。我可以在脚本中使用等效的Linux吗?


阅读 241

收藏
2020-06-02

共1个答案

一尘不染

read 做这个:

user@host:~$ read -n1 -r -p "Press any key to continue..." key
[...]
user@host:~$

-n1指定它只是等待一个字符。在-r将其放入原始模式,这是必要的,否则,如果按类似反斜杠,它不会注册,直到你遇到下一个关键。在-p指定的提示,如果包含空格,必须用引号括起来。key仅当您想知道他们按下了哪个键时才需要该参数,在这种情况下,您可以通过进行访问$key

如果您使用的是Bash,还可以使用指定超时-t,这会导致在未按下任何键时read返回失败。因此,例如:

read -t5 -n1 -r -p 'Press any key in the next five seconds...' key
if [ "$?" -eq "0" ]; then
    echo 'A key was pressed.'
else
    echo 'No key was pressed.'
fi
2020-06-02