按任意键,超时进度显示在外壳中



我想为用户提供按任意键或等待超时以继续使用 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

相关内容

  • 没有找到相关文章

最新更新