Führen Sie mit „date“ jede Minute dauerhaft einen Befehl aus.

Führen Sie mit „date“ jede Minute dauerhaft einen Befehl aus.

Ich suche nach einer Möglichkeit ( bashper Skript oder anders), mit der man einen Befehl jede Minute ausführen kann date. Ich habe mich nach ähnlichen Lösungen umgesehen, aber alle schlagen entweder „ cronoder“ vor watch. Ich möchte den Befehl jedoch entsprechend der Ausgabe ausführen, datesodass ich den Befehl ausführen kann, wenn der Sekundenzeiger 30 erreicht, z. B. 12:50:30 12:51:30 12:52:30 12:53:30 … Ich bin für jede Hilfe sehr dankbar.

Antwort1

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

bearbeiten

als ob Sie das Datum + %S stdout sehen und prüfen wollten, ob = 30 und etwas ausführen!

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

oder

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

verwandte Informationen