使用“日期”每分钟执行一次命令

使用“日期”每分钟执行一次命令

我正在寻找一种方法(bash脚本或其他)来使命令每分钟运行一次date- 我一直在寻找类似的解决方案,但他们都建议要么cronwatch但我想做的是根据的输出,date以便我可以在秒针达到 30 时运行命令,例如 12:50:30 12:51:30 12:52:30 12:53:30 ...任何帮助将不胜感激。

答案1

#!/bin/bash
until [[ $(date +%S) -eq 30 ]]
do
  sleep 0.75
done

while true
do
  #command & 
  #here your cmds should be forked to background to avoid delaying
  date +%S
  sleep 30
done

编辑

正如您想查看 date +%S stdout 并检查 if = 30 并执行某些操作!

#!/bin/bash
foo(){
  echo yay
  #add commands here
}
while true
do
  date +%S | grep '30' && foo 
  sleep 1
done

或者

#!/bin/bash
foo(){
  echo yay
  #add commands here
}
while true
do
  date +%S
  [[ $(date +%S) -eq 30 ]] && foo 
  sleep 1
done

相关内容