【发布时间】:2014-10-02 13:49:01
【问题描述】:
我编写了将 *.avi 文件转换为 mp4 格式的脚本。 然而,“while”循环在第一次迭代后停止。
#!/bin/bash
shopt -s lastpipe
cd <some_directory>
find . -name *.avi -type f |
while read -r avi
do
/usr/bin/HandBrakeCLI -i "${avi}" -o "${avi%.avi}.mp4" -f mp4 -m -O -e x264 -q 20 --vfr \
# &> /dev/null
if [ "$?" -eq 0 ]
then
echo "${avi} was converted successfully"
rm "${avi}"
else
echo "${avi} was not converted"
break
fi
done
【问题讨论】:
-
你应该添加一个问题。
-
因为
break声明?顺便说一句,使用done < <(find...)与lastpipe相同,并且它更常见。 :)
标签: bash while-loop do-while