【问题标题】:Press any key with timeout progress displayed in shell按任意键,shell 中显示超时进度
【发布时间】:2016-03-17 09:28:59
【问题描述】:

我想提示用户按任意键或等待超时以继续使用 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 时返回非零错误代码是必须的。

【问题讨论】:

    标签: bash timeout pause


    【解决方案1】:

    更简洁一点:

    echo -n "Press any key to continue";
    for _ in {1..3}; do read -rs -n1 -t1 || printf ".";done;echo
    

    【讨论】:

      猜你喜欢
      • 2012-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-13
      • 1970-01-01
      • 2023-03-13
      相关资源
      最近更新 更多