Передача нескольких параметров из 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
Другие вопросы по тегам