Bash For Schleife mit Sekundenabfrage
Ein Script soll alle 10 Sekunden einen Befehl ausführen.
Hallo, suche eine Möglichkeit unter Debian Bash mittels einer FOR Schleife alle 10 Sekunden etwas auszuführen.
Ich dachte dabei so in die Richtung "$(date | cut -c 19) -eq 0" dann tue etwas. Das ganze hab ich als funktionierendes Konstrukt mit Funktionen und If Abfrage ( if [ $(date | cut -c 19) -eq 0 ] ), da gibt es aber irgendwo ein Memory Leak und ich versuchs dehalb auf FOR umzustellen.
Wer hat ne Idee?
Hallo, suche eine Möglichkeit unter Debian Bash mittels einer FOR Schleife alle 10 Sekunden etwas auszuführen.
Ich dachte dabei so in die Richtung "$(date | cut -c 19) -eq 0" dann tue etwas. Das ganze hab ich als funktionierendes Konstrukt mit Funktionen und If Abfrage ( if [ $(date | cut -c 19) -eq 0 ] ), da gibt es aber irgendwo ein Memory Leak und ich versuchs dehalb auf FOR umzustellen.
Wer hat ne Idee?
#!/bin/bash
for 0 in $(date | cut -c 19)
do
echo $date
done
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 143057
Url: https://administrator.de/contentid/143057
Ausgedruckt am: 25.11.2024 um 12:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo,
mit folgendem Konstrukt kannst Du ein Pause von 10 Sekunden zwischen die Anweisungen bringen, damit ist aber jeder Durchlauf 10 Sekunden plus Zeitbedarf der Anweisungen lang:
Ansonsten must du mit zwei verschachtelten Schleifen arbeiten:
Oh, und da ist ist kein "Memory Leak", versuch mal 'man date' und 'man for'.
mit folgendem Konstrukt kannst Du ein Pause von 10 Sekunden zwischen die Anweisungen bringen, damit ist aber jeder Durchlauf 10 Sekunden plus Zeitbedarf der Anweisungen lang:
while true
do
# Anweisungen
sleep 10
done
Ansonsten must du mit zwei verschachtelten Schleifen arbeiten:
while true
do
# Anweisungen
while [ ! "$(date +%S |cut -c 2) == "0" ]
do
continue
done
done
Oh, und da ist ist kein "Memory Leak", versuch mal 'man date' und 'man for'.