重复bash命令n秒

时间:2017-07-30 16:17:37

标签: bash

我已经看到很多方法每n秒重复一次bash命令,但没有重复命令 n秒。

有没有办法在n秒内重复命令?因此,如果我的命令需要一秒钟来执行,它将运行十次。如果它需要两秒钟,它将运行五次。

如果需要七秒钟,它将执行两次(不多),或者它可能会退出脚本。

现在我正在通过查看我的脚本执行一次所需的时间,然后计算我需要重复多少次以使其执行n秒来完成它。但是,这有点不可靠,因为我发现运行脚本所需的时间略有不同。

2 个答案:

答案 0 :(得分:3)

timetorun=30    # In seconds
stoptime=$((timetorun + $(date +%s)))
while [ $(date +%s) -lt $stoptime ]; do
    something
done

请注意,这将继续运行命令,直到timetorun秒过去,因此通常它实际运行的时间超过了timetorun秒。举一个极端的例子,如果//table[@class='fe-datatable']为30秒,程序需要29秒,它将运行两次(因此需要58秒)。

答案 1 :(得分:0)

如果您知道要执行多少次

,则可以使用此功能
num_iter = 15
while [ num_iter > 0 ]
do
    sh script.sh
    sleep 2
    let "num_iter--"
done

或者使用 watch -n 每n秒重复一次命令。然后你包装watch函数并在特定的时间后杀死它