读取当前时间并在接下来的2小时增加1分钟,并运行一些命令

时间:2019-04-03 12:59:39

标签: shell

  1. 我必须读取当前系统时间,并在接下来的2小时内增加1分钟。我需要以1分钟的间隔连续运行2个小时的几个命令。

例如:当前时间:8:30 PM我需要在接下来的2个小时内分别运行8.30、8.31 ....,依此类推,持续2个小时。我希望此运行将打印120个输出结果。请帮忙。

在shell脚本中需要它。

2 个答案:

答案 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