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