Я передаю аргументы (выбранные элементы поиска) в Automator, в сценарий оболочки (скрипт Sox для преобразования wav-файлов в wav-файлы u-law). У меня возникли две проблемы:Передайте более 10 аргументов скрипту оболочки Sox в automator
Если выбрано более 10 элементов, сценарий оболочки игнорирует все, что находится за первым 10 аргументами, а также, поскольку скрипт стоит прямо сейчас, даже при передаче менее 10 аргументов (элементов поиска) сценарий оболочки будет действовать на всех, кроме последнего выбранного элемента. Итак, если я выберу 3 файла в автомате, первые 2 пройдут, а не третье. Или, если я выберу 4 файла, 3 файла сделают это - и так далее.
Вот мой Automator порядок действий
Спросите пунктов Finder
Установить значение переменной
помеченных переменных "входных-файлов"
Получить значение переменной
получить переменные «ввод-файлы»
Run Shell Script
#! /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 для f в "$ @"; do /usr/local/bin/sox "$ f" -r 8000 -c 1 -e u-law "$ {f%. *}" - ulaw.wav done' – Darbis