Bash按任意键计时器,跳到部分

时间:2014-05-06 12:56:07

标签: bash

我正在读这个帖子:Bash script countdown timer needs to detect any key to continue

似乎我可以实现类似的东西,以便我的脚本总是开始等待x秒,以便某人按键。我想改变的是,如果他们点击那个键,我想跳到我脚本的特定部分。

我怎样才能做到这一点?

1 个答案:

答案 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"如果没有按任何键,将被打印。