Hi,
ich komm hier nicht weiter. Ich will Aufrufe für ffmpeg in ein Shell-Script speichern und das dann aufrufen. Ich will die Ausgabedatei nach ffmpeg noch umbenennen. Das Ergebnis soll so aussehen:
Wieso das mv? Ich will später noch einbauen, dass im Falle eines Abbruchs des Scriptes die unfertige Ausgabedatei gelöscht wird. Ich muss ja aber irgendwie fertige von unfertigen unterscheiden können. Da ich das ganze per For-Scleife mache sieht mein Script dafür so aus:Code (C):
ffmpeg -i input -acodec mp3 output-temp ; mv output-temp output
Das fertige Shell-Script beinhaltet dann für jede MP3-Datei eine Zeile, jede Zeile besteht aus 1x ffmpeg und 1x mv. Wie ich im Falle eines Abbruchs des Scriptes das löschen umsetze weiß ich noch nicht, das kommt später. Aber irgendwie funktioniert das mit dem Shell-Script nicht. Das Ergebnis ist hier:Code (C):
for file ; do echo -n ffmpeg -i "$file" -acodec mp3 "$file"-temp >> /tmp/ffmpeg.sh ; echo mv "$file"-temp "$file"-new.mp3 >> /tmp/fmpeg.sh done
Es wird also das mv ohne Leerzeichen und ohne ; an ffmpeg gequetscht. Ich vermute er interpretiert hier das ; als Trennung für die beiden echo-Aufrufe. Wenn ich aber z. B. dazwischen einCode (C):
ffmpeg -i input -acodec mp3 output-tempmv output-temp output
einfüge, wird das komplett ignoriert.Code (C):
echo ";"