2015-04-04 155 views
-1

我可能在这里错过了一些非常简单的东西,但是我在构建运行bash shell脚本的automator服务时遇到了问题。当插入到shell中时,脚本的所有元素都可以正常工作,但由于某种原因automator服务无法运行。该脚本调用的ffmpeg从取景器转换传递给它的音频文件:Automator bash shell脚本问题

for f in "[email protected]" 
 
do 
 
    fn="${f%%.*}" 
 
    ~/Applications/ffmpeg/ffmpeg -i "$f" -acodec libmp3lame -q:a 7 -ar 8000 -ac 1 "$fn.mp3" 
 
done

运行脚本,而不ffmpeg的命令的罚款,并FFmpeg的命令在其自己的终端运行正常。错误来自哪里?

谢谢!

+0

用'set -x','echo“f = $ f,fn = $ fn”或'echo〜/ Applications/ffmpeg/ffmpeg -i“$ f”-acodec libmp3lame显示脚本试图执行的内容-q:a 7 -a 8000 -ac 1“$ fn.mp3”' – 2015-04-06 12:02:53

+0

感谢您的帮助,@WalterA。经过太长时间后,它终于在终端和automator如何处理变量字符串方面有所不同。虽然该命令在终端中执行正常,但我需要在automator中的fn变量周围添加括号。 〜/ Applications/ffmpeg/ffmpeg -i“$ f”-acodec libmp3lame -q:a 7 -a 8000 -ac 1“$ {fn} .mp3” 运行得很好。 – Dae 2015-04-06 12:36:30

回答

0

它最终在终端和automator如何处理变量字符串方面有所不同。虽然该命令在终端中执行正常,但我需要在automator中的fn变量周围添加括号。

~/Applications/ffmpeg/ffmpeg -i "$f" -acodec libmp3lame -q:a 7 -ar 8000 -ac 1 "${fn}.mp3" 

运行得很好。