だから私はビデオをmp3にトランスコードするために、次のような小さなノーチラススクリプトを書いています。
#! /bin/bash -x
if [ -z "$1" ]
then
zenity --warning --text="Error - No file selected !"
exit 1
fi
BASEFILENAME=${1%.*}
exec ffmpeg -i "$1" -ab 256k "$BASEFILENAME.mp3" &&
if [ "$?" -eq 0 ]
then
zenity --info --text="Converting successful"
exit
fi
問題はffmpegコマンドが正常に実行されましたが、if [ "$?" -eq 0 ]
発動しないようです。なぜそんなことですか?&&
間違いですか、それとも別のものですか?
ベストアンサー1
このドアに到達する唯一の方法は、ドアexec
自体が失敗した場合です。成功すると、ffmpeg
コマンドはシェルを完全に置き換えます。 (現象的&&
にはこの場合でも失敗するため、まったく到達できません。)exec
これを実行したくないので、実行してください。