我正在编写一个简单的脚本来遍历文件夹中的所有m4a文件,并将它们编码为mp3。我想在不同线程中对文件进行编码,以提高执行速度并充分利用PC中的所有内核,因此我将任务发送到后台,如果这是正确的方法,请告知我。 无论如何,我得到一个没有这样的文件或直接错误的每一个我想要编码的文件,即使该文件存在;有趣的是,如果我将完全相同的指令复制到终端,它将被正确执行。你能帮我找出我做错了什么吗?Bash脚本未找到文件
在此先感谢。
#!/bin/bash
function encode {
echo "<<<<<<<<<<<encode>>>>>>>>>>>>>>>>"
cd "$1"
find . -mindepth 1 -maxdepth 1 | while read f
do
if [ -f "${f}" ]
then
if [ ${f: -4} == ".m4a" ]
then
if [ ! -d "converted" ]
then
mkdir converted
fi
newPath="${f%m4a}mp3"
echo "ffmpeg -i \""$f"\" -ac 2 -b:a 320k -y \""$newPath"\" </dev/null >/dev/null &"
ffmpeg -i \""$f"\" -ac 2 -b:a 320k -y \""$newPath"\" </dev/null >/dev/null &
fi
elif [ -d "${f}" ]
then
echo "folder $f"
encode "$f"
fi
done
}
encode "$1"
你有太多的报价。 – chepner