Как открыть приложение AppleScript с аргументами
У меня есть AppleScript, который запускает программу сканирования (командная строка), которая сканирует в определенную папку. Мне нужно передать аргументы в applescript, который, в свою очередь, передает Аргументы терминалу.
в терминале я хочу работать open -a /Applications/MyScanApp.app myargument
и запускается AppleScript. Как я могу принять этот аргумент? Спасибо за помощь! Я обычно программист PHP, и это что-то совершенно другое для меня.
Мой AppleScript:
tell application "Terminal"
do script "./myscanprogram myargument 2>&1"
end tell
2 ответов
почему никто не упомянул quoted form of
? Если вы хотите отправить произвольные данные в качестве аргумента в приложение, вы должны использовать цитируемую форму. Когда кавычки, пробелы и другие специальные символы находятся в данном пути, команда будет разбита в предыдущих примерах.
on run argv
tell application "Terminal"
do script "./myscanprogram " & quoted form of (item 1 of argv) & " 2>&1"
end tell
end run
поскольку вы упомянули, что вы новичок в AppleScript, он должен работать в терминале.app или достаточно оболочки? AppleScript имеет команду do shell script
который открывает оболочку, выполняет текст и возвращает stdout назад к вам.
on run argv
do shell shell script "/path/to/myscanprogram " & quoted form of (item 1 of argv) & " 2>&1"
end run
последнее, но не менее. Если вы не хотите вывод программы сканирования и не хотите, чтобы AppleScript ждал, пока он не будет завершен, вы можете использовать
on run argv
do script "/path/to/myscanprogram " & quoted form of (item 1 of argv) & " &>/dev/null &"
end run
интересно, почему вы используете свой терминал для обращения к AppleScript, который снова использует терминал, но, возможно, я просто не знаю ваших обстоятельств...
Applescript:
on run argv
tell application "Terminal"
do script "./myscanprogram " & (item 1 of argv) & " 2>&1"
end tell
end run
позвонили из osascript внутри вашего терминала:
osascript pathToYourScript.scpt myargument
хорошего дня, Майкл / Гамбург