2

我想提示用户按任意键或等待超时以继续使用 shell。通常这种情况是用以下成语解决的:

read -rs -t3 -n1 "Press any key or wait to continue ..."

然而,这个提示对我来说似乎有点笨拙,我只想留下“按任意键继续......”部分消息并指示超时,每秒打印点。所以我写了以下脚本:

#!/bin/sh

echo -n "Press any key to continue";

for _ in `seq 3`; do
    if ! read -rs -n1 -t1 ; then echo -n "."; else break; fi
done

echo

它按我的预期工作,但显然代码太多,所以我必须放入单独的文件而不是sh -c "..."在脚本中使用 as。有没有办法以更简洁和紧凑的方式实现它?

Ctrl-CPS 在按下时返回非零错误代码是必须的。

4

1 回答 1

2

更简洁一点:

echo -n "Press any key to continue";
for _ in {1..3}; do read -rs -n1 -t1 || printf ".";done;echo
于 2016-03-17T10:35:14.570 回答