Передача нескольких параметров из Applescript в командный сценарий терминала
Я пытался выяснить, как передать несколько параметров из Applescript в командный сценарий терминала. Например, при запуске командного файла терминала вы можете получать параметры программно, например, так:
#!/bin/bash
var=$1
var=$2
Код Applescript, с которым я работал, приведен ниже для справки:
tell application "System Events" to set app_directory to POSIX path of (container of (path to me))
set thisFile to "Dev"
set testTarget to "/Users/lab/Desktop/TestTarget/"
do shell script "/Users/lab/Desktop/TempRoot/mycommand.command " & thisFile & testTarget with administrator privileges
Там, где я думаю, что я ошибся, это ввод второго параметра. Когда у меня был только один параметр, он прошел нормально:
do shell script "/path/to/command/mycommand.command" &var with administrative privileges
Мне интересно, какой будет правильный синтаксис для передачи этого второго параметра. Если у кого-то есть какие-либо предложения, пожалуйста, дайте мне знать! Также, если вам нужна дополнительная информация, я был бы рад предоставить ее!
2 ответа
Вам просто нужно добавить пробел между аргументами. Прямо сейчас, нет места между thisFile
а также testTarget
, Ваша команда выглядит так:
/Users/lab/Desktop/TempRoot/mycommand.command Dev/Users/lab/Desktop/TestTarget/
Измените строку сценария оболочки на:
do shell script "/Users/lab/Desktop/TempRoot/mycommand.command " & thisFile & space & testTarget with administrator privileges
Что-то, что я нахожу полезным при создании скрипта, это проверка правильности моих команд оболочки перед их выполнением. Поэтому вместо того, чтобы создавать ее напрямую, сохраните команду в переменной и зарегистрируйте ее. Позже замените оператор записи на do shell script
команда.
set shellScript to "/Users/lab/Desktop/TempRoot/mycommand.command " & thisFile & space & testTarget with administrator privileges
log shellScript
-- do shell script shellScript
Это сокращенное описание ответа, опубликованное в @Darrick Herwehe's. Мне просто нужно было добавить ключевое слово пробела, и команда работала отлично. Большое спасибо!
do shell script "/Users/lab/Desktop/TempRoot/mycommand.command " & thisFile & space & testTarget with administrator privileges