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 -x
、echo "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 工作流程触发热键/键盘快捷键?
用于 tar-gzip(或 pigz)的 Automator 应用程序
linux shell编程bash编程shell教程bash教程shell文档bash文档shell脚本bash脚本教程第一部分:绪论