我可能在这里遗漏了一些非常简单的东西,但是我在构建运行bash shell脚本的automator服务时遇到了麻烦。插入shell时脚本的所有元素都可以正常工作,但由于某种原因,自动机服务无法运行。该脚本调用ffmpeg来转换从finder传递给它的音频文件:
for f in "$@"
do
fn="${f%%.*}"
~/Applications/ffmpeg/ffmpeg -i "$f" -acodec libmp3lame -q:a 7 -ar 8000 -ac 1 "$fn.mp3"
done

该脚本在没有ffmpeg命令的情况下运行正常,并且ffmpeg命令在终端中自行运行正常。错误来自哪里?
谢谢!
答案 0 :(得分:0)
它最终在终端和自动机如何处理变量字符串方面有所不同。虽然命令在终端中执行正常,但我需要在automator中的fn变量周围添加括号。
~/Applications/ffmpeg/ffmpeg -i "$f" -acodec libmp3lame -q:a 7 -ar 8000 -ac 1 "${fn}.mp3"
运行得很好。