什么是Linux相当于DOS暂停?
时间:2020-03-06 14:21:27 来源:igfitidea点击:
我有一个Bash shell脚本,我想在其中暂停执行,直到用户按下某个键为止。在DOS中,可以使用" pause"命令轻松完成此操作。我可以在脚本中使用等效的Linux吗?
解决方案
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
试试这个:
function pause(){ read -p "$*" }
不带任何参数的" read"仅在我们按Enter键后才能继续。
如果我们按任意键,DOS" pause"命令将继续。如果我们想要这种行为,请使用read n1
。