Shell-Skript: Unterstützung benötigt
Sehr geehrte Damen und Herren,
ich wünsche einen guten Tag.
Ich benötige Unterstützung bei einem Shell-Skript.
Da ich mich damit nicht auskenne, ist es bisher mit Suchmaschine und probieren entstanden.
Irgendwie funktioniert es und irgendwie auch nicht.
Nach Ausführung des Skripts wird mir der Inhalt von $ende angezeigt und die if-Anweisungen funktionieren nicht wie sie sollen.
Kann mir jemand helfen?
Mit bestem Dank und freundlichen Grüßen
ich wünsche einen guten Tag.
Ich benötige Unterstützung bei einem Shell-Skript.
Da ich mich damit nicht auskenne, ist es bisher mit Suchmaschine und probieren entstanden.
Irgendwie funktioniert es und irgendwie auch nicht.
#!/bin/bash
nohup ffmpeg -i URL -c copy Test_.mp3 &
#process=$(pgrep ffmpeg)
nr=1
ende= date -d "+15 days"
while [[ date -lt $ende ]]
do
if [[ ! -z $process ]]
then
sleep 30s
killall ffmpeg #Test, ob der else-Zweig funktioniert
else
nohup ffmpeg -i URL -c copy "Test_"+$nr+".mp3" &
$nr+=1
fi
done
Nach Ausführung des Skripts wird mir der Inhalt von $ende angezeigt und die if-Anweisungen funktionieren nicht wie sie sollen.
Kann mir jemand helfen?
Mit bestem Dank und freundlichen Grüßen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1618903901
Url: https://administrator.de/forum/shell-skript-unterstuetzung-benoetigt-1618903901.html
Ausgedruckt am: 22.12.2024 um 19:12 Uhr
6 Kommentare
Neuester Kommentar
Moin,
Gruß Thomas
Zitat von @MahstarD:
Das Skript soll folgendes machen:
-eine Aufnahme mit ffmpeg im Hintergrund starten
-solange ein Datum nicht erreicht ist
-prüfen ob der ffmpeg-Prozess läuft
-wenn ja, 30Sek warten und erneut prüfen
-wenn nein, Aufnahme mit ffmpeg erneut starten und dem Dateinamen eine dann hochzählende Nummer anhängen
Das Skript soll folgendes machen:
-eine Aufnahme mit ffmpeg im Hintergrund starten
-solange ein Datum nicht erreicht ist
-prüfen ob der ffmpeg-Prozess läuft
-wenn ja, 30Sek warten und erneut prüfen
-wenn nein, Aufnahme mit ffmpeg erneut starten und dem Dateinamen eine dann hochzählende Nummer anhängen
#!/bin/bash
ENDE=$( date -d "+15 Days" +%s )
NR=1
until [[ $(date +%s) -ge $ENDE ]]
do
if pgrep ffmpeg > /dev/null
then
sleep 30
else
# ffmpeg hier starten lassen
NR=$(($NR+1))
fi
done
Gruß Thomas
Zitat von @MahstarD:
Noch eine Verständnisfrage bevor ich die Frage als gelöst markiere.
DATUM enthält jetzt einen Wert exakt 24Stunden später?
Habe ich das richtig verstanden?
Genau.Noch eine Verständnisfrage bevor ich die Frage als gelöst markiere.
DATUM=$( date -d "+1 days" +%s )
Habe ich das richtig verstanden?
-d "+1days" - erhöht das derzeitige Datum um einen Tag, sprich: Morgen um die gleiche Zeit.
+%s - Ändert das Ausgabeformat des Datum ab. Hier werden die Sekunden ausgegeben, die vom "01.01.1970 00:00 Uhr UTC" bis zu dem angegebenen Datum vergangen sind bzw. vergangen sein werden - so erhält man einen Numerischen Wert, den man vergleichen kann.