linux bash脚本跑不了大神看看哪错了《求代码》 20C
用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

0

4个回答

![图片说明](https://img-ask.csdn.net/upload/201807/23/1532311155_558621.png)图片说明
这是代码和运行结果看看哪错了

0

图片说明

0

把flac_files的值打印出来,应该就可以定位问题了,find的返回值应该是0或非0,因此每次都可以进该分支

0

从运行结果看是没有找到文件
1、music目录是相对目录,脚本所在位置影响find结果
2、find -name 限定了文件名格式,你的文件名格式是否符合?
从以上两个方面检查一下看看

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!