Mehrere Bash-Aktionen für einzelne Eingaben durchführen

Mehrere Bash-Aktionen für einzelne Eingaben durchführen

Ich habe ein Skript wie folgt:

ffmpeg -i input.mp4 -stabilization-pass-1-stuff && \
ffmpeg -i input.mp4 -b:v xxxxk -stabilization-pass-2-h264-pass-1-stuff && \
ffmpeg -i input.mp4 -b:v xxxxk -h264-pass-2-output-stuff output.mp4

Wie kann ich das Skript umschreiben, sodass ich zu Beginn des Skripts einmalig „input.mp4“ und die Bitrate xxxxk angeben muss?

Antwort1

Mit Shell-Variablen. „Sich nicht zu wiederholen“ ist einer der Hauptanwendungsfälle für Shell-Variablen:

#!/bin/sh

file='input.mp4'
bitrate='xxxxk'

ffmpeg -i "$file" -stabilization-pass-1-stuff &&
ffmpeg -i "$file" -b:v "$bitrate" -stabilization-pass-2-h264-pass-1-stuff &&
ffmpeg -i "$file" -b:v "$bitrate" -h264-pass-2-output-stuff output.mp4

Anmerkungen:

verwandte Informationen