我将Automator中的参数(选定的查找程序项)传递给shell脚本(将wav文件转换为u-law wav文件的Sox脚本)。我有两个问题:将超过10个参数传递给自动工具中的Sox shell脚本
如果选择的项目超过10个,shell脚本会忽略超过前10个参数的任何内容,并且,即使在传递少于10个参数(finder项目)的情况下, shell脚本将对除最后一个选定项目以外的所有项目起作用。所以,如果我在automator中选择3个文件,前2个将会通过,而不是第三个。或者,如果我选择4个文件,3个文件将通过 - 等等。
这里是我的Automator动作命令
询问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
任何帮助将不胜感激!
谢谢!我按照建议简化了无关代码,并剔除了一些不必要的代码。它最终是这样的:'#!/bin/sh for f in“$ @”; do /usr/local/bin/sox“$ f”-r 8000 -c 1 -e u-law“$ {f%。*}” - ulaw.wav done' – Darbis