如何在脚本运行时操纵循环的输出

时间:2014-03-19 01:31:42

标签: bash

#!/bin/bash

for i in $(seq $1)
        do
                echo -n '.'
                sleep 1
        done

echo

脚本每秒打印一个点,并根据用户的输入在屏幕上显示点数。我想要做的是,当我按下一个键(例如,a)时,脚本将在半秒内像一个点一样运行得更快......因此,按下相同的键越多,运行得越快。

1 个答案:

答案 0 :(得分:1)

sleep

的持续时间内使用变量
duration=1
# ... inside loop:
                sleep $duration
# ...

然后,每次调用sleep时,都会有一些代码来检查新的按键,并根据需要更改$duration的值。

另一方面,根据您可用的sleep版本,它可能不支持小数参数,因此您可能必须使用单独的程序,如usleep