我正在读这个帖子:Bash script countdown timer needs to detect any key to continue
似乎我可以实现类似的东西,以便我的脚本总是开始等待x秒,以便某人按键。我想改变的是,如果他们点击那个键,我想跳到我脚本的特定部分。
我怎样才能做到这一点?
答案 0 :(得分:0)
这个(改编自Sakthi Kumar's answer in the linked question):
#!/bin/bash
was_key_pressed=
for (( i=10; i>0; i--)); do
printf "\rHit any key to show 'Foo', or wait $i seconds and 'Bar' will be displayed..."
read -s -n 1 -t 1 key
if [ $? -eq 0 ]
then
was_key_pressed="true"
break
fi
done
echo
if [ "${was_key_pressed}" ]; then
echo "Foo"
else
echo "Bar"
fi
该脚本使用名为was_key_pressed
的变量,并将其值设置为空字符串。然后,如果在read
函数中按下某个键,则会将was_key_pressed
的值设置为" true"并打破了循环。
一旦循环退出,单词" Foo"如果通过检查was_key_pressed
是否仍为空字符串来按下某个键,则会打印,否则" Bar"如果没有按任何键,将被打印。