Можете ли вы: a) выполнить программу командной строки из Ruby b) сохранить рабочий процесс Automator как приложение
Если это так, вы сможете выполнить команду open
, например open test.app --args someArg
.Или вы можете использовать команду automator
, например echo "someArg" | automator -i - test.app
Обратите внимание, что весь скрипт Automator будет запускаться один раз для каждого аргумента - попробуйте использовать «Speak Text» в качестве первого элемента, чтобы проверить это.
Чтобы работать со всеми параметрами за один раз, вам нужно на самом деле передать только один, а затем разделить его, например, open test.app --args "one|two|three|four"
, затем что-то вроде
on run input
set myArray to my theSplit(input as string, "|")
set a to item 1 of myArray
set b to item 2 of myArray
set c to item 3 of myArray
set d to item 4 of myArray
display dialog "c is " & c
--do stuff
return str
end run
on theSplit(theString, theDelimiter)
-- save delimiters to restore old settings
set oldDelimiters to AppleScript's text item delimiters
-- set delimiters to delimiter to be used
set AppleScript's text item delimiters to theDelimiter
-- create the array
--set theArray to every text item of theString
set theArray to text items of theString
--display dialog theArray as string
-- restore the old setting
set AppleScript's text item delimiters to oldDelimiters
-- return the result
return theArray
end theSplit
Однако AppleScript только работаетесли это не первое действие.Если вам это нужно в качестве первого действия, которое вы, вероятно, делаете, сначала вставьте скрипт запуска оболочки, который просто передает аргументы:
for f
do
echo “$f"
done