我想为用户提供按任意键或等待超时以继续使用 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 "..."
。有没有办法以更简洁紧凑的方式实现它?
附言在按下Ctrl-C
返回非零错误代码是必须的。
更简洁一点:
echo -n "Press any key to continue";
for _ in {1..3}; do read -rs -n1 -t1 || printf ".";done;echo