これはビデオのフレームレートを出力するbashスクリプトで、引数にはスペースが含まれている可能性があります。この引数もスクリプト内のコマンドで使用されます。bash |空白をエスケープしながら変数に引数を代入する
#!/bin/bash
inputVid="$*"
#checking if $inputVid has full path
echo $inputVid
frames=`ffmpeg -i $inputVid 2>&1 | sed -n "s/.*, \(.*\) fp.*/\1/p"`
echo $frames
私は
$./frameRate.sh ../Downloads/FlareGet/Videos/Why\ .mp4
出力が実行します。
../Downloads/FlareGet/Videos/Why .mp4
ので、ファイル名が正しく渡さなっているが、スペースが
をffmpegのからの出力されないので、エスケープ取得されていませんこれを解決する方法はありますか?
ファイル名を二重引用符で囲みますか? – codeforester
@codeforester別のpythonスクリプトから変数を引数として渡すので、ファイル名を引用するのは私の選択肢ではありません! –