用vim写个bash脚本,判断某个文件是否存在,如果存在,调用ffmpeg将文件夹下以FLAC1_ 开头的扩展名为.flac的文件转换为mp3格式
#!/bin/bash
FFMPEG_BIN="ffmpeg-4.0.1/ffmpeg"
MUSIC_PATH="music"
if [[ -d ${MUSIC_PATH} ]]; then
echo "MUSIC_PATH exists."
flac_files=find ${MUSIC_PATH} -name "FLAC1_*.flac"
if [[ -z "${flac_files}" ]]; then
echo "No flac files in directory ${MUSIC_PATH}"
exit
fi
echo "Start to convert flac format to mp3 format"
for input_file in ${flac_files}
do
output_file=${input_file/flac/mp3}
echo -e "\n${input_file} ==> ${output_file}"
${FFMPEG_BIN} -i "$input_file" -ab 320k -map_metadata 0 "${output_file}"
done
else
echo "MUSIC_PATH doesn't exist."
fi
这是代码和运行结果看看哪错了
把flac_files的值打印出来,应该就可以定位问题了,find的返回值应该是0或非0,因此每次都可以进该分支
从运行结果看是没有找到文件
1、music目录是相对目录,脚本所在位置影响find结果
2、find -name 限定了文件名格式,你的文件名格式是否符合?
从以上两个方面检查一下看看