例如:当前时间:8:30 PM我需要在接下来的2个小时内分别运行8.30、8.31 ....,依此类推,持续2个小时。我希望此运行将打印120个输出结果。请帮忙。
在shell脚本中需要它。
答案 0 :(得分:1)
如果您不介意在for
表达式中进行120分钟的硬编码,则这里有一个快速而肮脏的答案:
for min in {1..120}
do
command & # launch in background to minimize drift
sleep 60
done
或者,修改crontab条目(避免所有漂移注意事项):
crontab -l > /tmp/oldcron.$$
crontab << EOF
$(crontab -l )
*/2 * * * * command # run command every 2 minutes forever
EOF
sleep $(( 2 * 60 * 60 )) # sleep 2 hours
crontab < /tmp/oldcron.$$
上面的代码可能会遭受1比1的错误。您可能需要增加59秒的睡眠时间。
答案 1 :(得分:0)
#!/usr/bin/env bash
count=0
max=120 # 2 * 60 minutes
while [ true ]; do
((count++))
sleep 60
# terminal -e command
if (( $count > $max )); then
break
fi
done