Bash

使用“日期”永遠每分鐘執行一個命令

  • November 2, 2015

我正在尋找一種方法(bash腳本或其他)讓命令每分鐘執行一次date- 我一直在尋找類似的解決方案,但他們都建議cron或者watch但我想做的是根據的輸出,date以便我可以在秒針達到 30 時執行命令,例如 12:50:30 12:51:30 12:52:30 12:53:30 …任何幫助將不勝感激。

#!/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

引用自:https://unix.stackexchange.com/questions/240320