如何制作“按任意键继续”

sup*_*anh 266 bash

我正在制作一个脚本来安装我的主题,安装完成后会出现变更日志,并且会有“按任意键继续”,以便用户阅读变更日志后按任意键继续

MKT*_*MKT 432

您可以使用以下read命令:

read -p "Press enter to continue"
Run Code Online (Sandbox Code Playgroud)

正如上面的评论中提到的,这个命令实际上需要用户按enter; 适用于任何键的解决方案是:

read -n 1 -s -r -p "Press any key to continue"
Run Code Online (Sandbox Code Playgroud)

Raynewchargin 的解释

-n 定义停止阅读所需的字符数

-s 隐藏用户的输入

-r 导致字符串被解释为“原始”(不考虑反斜杠转义)


Sti*_*mer 19

正如@cas 在评论中所写,您真的应该less为此使用它。如果更改日志不止一页,那么无论如何您确实需要一个寻呼机。

您通常要咨询PAGER环境变量,而不仅仅是调用less

${PAGER:-less} changelog
Run Code Online (Sandbox Code Playgroud)

$PAGER如果已设置,则将使用,less否则将使用。


EKo*_*ons 17

read -rsn1 -p"Press any key to continue";echo
Run Code Online (Sandbox Code Playgroud)

或者,如果您确实需要该REPLY变量:

read -rsn1 -p"Press any key to continue" variable;echo
Run Code Online (Sandbox Code Playgroud)

替换variable为您不需要的变量名称。

  • `回声; read -rsn1 -p "按任意键继续……"; echo` **哦,我的天啊......我已经做到了!我做了 Windose!** (6认同)
  • 这个解决方案(包括;echo)更加优雅,因为它使终端恢复到全新的状态。只是我的 2 美分 (3认同)