我將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