我已经看到很多方法每n秒重复一次bash命令,但没有重复命令 n秒。
有没有办法在n秒内重复命令?因此,如果我的命令需要一秒钟来执行,它将运行十次。如果它需要两秒钟,它将运行五次。
如果需要七秒钟,它将执行两次(不多),或者它可能会退出脚本。
现在我正在通过查看我的脚本执行一次所需的时间,然后计算我需要重复多少次以使其执行n秒来完成它。但是,这有点不可靠,因为我发现运行脚本所需的时间略有不同。
答案 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函数并在特定的时间后杀死它