【发布时间】:2015-11-10 07:17:14
【问题描述】:
我正在将 Automator 中的参数(选定的查找器项目)传递给 shell 脚本(将 wav 文件转换为 u-law wav 文件的 Sox 脚本)。我有两个问题:
如果选择的项目超过 10 个,shell 脚本会忽略前 10 个参数之后的任何内容,而且,就目前脚本而言,即使传递的参数少于 10 个(查找器项目),shell 脚本也会执行除了最后一个选定的项目之外的所有项目。所以,如果我在 automator 中选择 3 个文件,前 2 个将通过,而不是第三个。或者如果我选择 4 个文件,3 个文件将通过 - 等等。
这是我的 Automator Action 命令
询问 Finder 项目
设置变量值
标记变量“输入文件”
获取变量的值
获取变量“输入文件”
运行 Shell 脚本
#! /bin/sh
soxloc="/usr/local/bin/sox";
tempfile="";
shopt -s nullglob
for f in "${@:1}"/*.wav
do
"$soxloc" "$f" -r 8000 -c 1 -e u-law "${f%.*}"-ulaw.wav
done
SO 上列出了一些解决方案,包括以下链接,但我只是不确定如何将这些解决方案中的任何一个集成到我的代码中:
How to handle more than 10 parameters in shell
任何帮助将不胜感激!
【问题讨论】:
标签: bash shell parameter-passing automator sox