我有這個bash腳本將.mp4視頻轉換爲.mp3音頻。 它運行,但只循環一次,儘管/ home/myname/mp4dir中有更多的mp4文件。該腳本會將找到的第一個.mp4文件轉換爲.mp3,除非已經存在.mp3文件。這應該在一個循環中完成,但在第一次調用ffmpeg之後,腳本停止。 爲什麼?bash腳本在while循環中停止執行 - 爲什麼?
#!/bin/bash
find /home/myname/mp4dir -name "*.mp4" | while read f
do
fOut=`echo $f | sed s/mp4/mp3/`
echo "convert $f => $fOut"
if ! test -f $fOut
then
ffmpeg -i $f -vn -f mp3 $fOut
fi
done
如果用'echo $ f'替換循環體,它是否工作? – nneonneo
是的,列出所有.mp4文件。腳本在第一次ffmpeg執行後停止。如果我對此進行註釋並將其替換爲回顯,它將運行所有.mp4文件。 –
當你用'bash -x youscript.sh'運行腳本時,你會看到什麼? 'ffmpeg'命令是否完成? –