我正在编写一个脚本来安装我的主题,安装完成后它将出现更改日志,并且会出现“按任意键继续”,以便用户在阅读更改日志后按任意键可以继续
/>

评论

少使用显示更改日志

gh-不要那样做!安装程序不应互动。没有人愿意坐下保姆,因为他们可能会排队等待安装一堆东西。只需将更改日志放在平台的标准位置(通常是/ usr / share / doc / / Changelog)中,然后使用它们完成操作即可。对于那些想要阅读每项更改的人,他们可以只安装apt-showchanges或等效的...

在我国,人们的做法有所不同,所以我只是使主题安装程序尽可能简单:选择安装选项>让脚本完成所有操作>完成安装后显示更改日志>按任意键退出,这只是安装我的脚本通过替换系统在iPhone 3GS上的iOS 10主题。我仔细检查了一下代码,以免混乱系统,我尝试了几次安装尝试,并且运行正常

但是...“ any”键在哪里? ;)

如果我现在可以编辑我的评论,我会说“少用些来显示您的变更日志,但是” U-不要这样做!...”'

#1 楼

您可以使用read命令:如上面的注释中所述,该命令实际上确实要求用户按Enter键。适用于任何键的解决方案是:

read -p "Press enter to continue"


Rayne和wchargin的解释


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

-s隐藏用户的输入

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

评论


那么在读取语句之后会怎样?似乎缺少以下行。

–Jortstek
20年5月2日,9:05

当我在zsh unix.stackexchange.com/questions/198372/中遇到“没有协同处理”错误时,这对我有所帮助

–LexJacobs
20/07/29在21:59

#2 楼

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

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

${PAGER:-less} changelog


如果设置了$PAGER,则使用less,否则使用q4312079q。

评论


谢谢,我的变更日志没有那么长,它不到iPhone屏幕的一半(我正在用iPhone编写脚本)

–superquanganh
16年7月5日在9:59

#3 楼

read -rsn1 -p"Press any key to continue";echo


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

read -rsn1 -p"Press any key to continue" variable;echo


用不需要的变量名替换variable

评论


回声;读取-rsn1 -p“按任意键继续...”;回声哦,天哪...我做到了!我做了温莎!

–安德鲁(Andrew)
19-3-20在3:15