Automator bash shell 脚本问题

Posted

技术标签:

【中文标题】Automator bash shell 脚本问题【英文标题】:Automator bash shell script trouble 【发布时间】:2015-04-04 23:47:46 【问题描述】:

我可能在这里遗漏了一些非常简单的东西,但是我在构建运行 bash shell 脚本的自动化服务时遇到了麻烦。插入 shell 时,脚本的所有元素都可以正常工作,但由于某种原因,automator 服务无法运行。该脚本调用 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 命令在终端中自行运行良好。错误来自哪里?

谢谢!

【问题讨论】:

使用set -xecho "f=$f, fn=$fn" or echo 显示脚本试图执行的内容 ~/Applications/ffmpeg/ffmpeg -i "$f" -acodec libmp3lame -q:a 7 -ar 8000 - ac 1 "$fn.mp3"` 感谢@WalterA 的帮助。在弄乱它太久之后,最终导致终端和自动机处理变量字符串的方式有所不同。虽然该命令在终端中执行得很好,但我需要在 automator 中的 fn 变量周围添加括号。 ~/Applications/ffmpeg/ffmpeg -i "$f" -acodec libmp3lame -q:a 7 -ar 8000 -ac 1 "$fn.mp3" 运行良好。 【参考方案1】:

最终导致终端和自动机处理变量字符串的方式有所不同。虽然该命令在终端中执行得很好,但我需要在 automator 中的 fn 变量周围添加括号。

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

运行良好。

【讨论】:

以上是关于Automator bash shell 脚本问题的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法通过 Shell 脚本、AppleScript 或 Automator 工作流程触发热键/键盘快捷键?

在 Automator 中使用 Ghostscript?

用Xcode和Automator制作workflow

用于 tar-gzip(或 pigz)的 Automator 应用程序

无法从 bash shell 脚本执行 Tcl 脚本

linux shell编程bash编程shell教程bash教程shell文档bash文档shell脚本bash脚本教程第一部分:绪论