Как запустить сценарий оболочки из AppleScript?

Я использую Mac под управлением OSX Yosemite v.10.10.5.

Когда я пытаюсь запустить свой сценарий оболочки из своего AppleScript, я получаю следующее сообщение об ошибке:

Сообщение об ошибке в редакторе сценариев AppleScript
error "sh: /Users/path/to/file/myShellScript.sh: Permission denied" number 126
myShellScript.sh
cd /Users/myusername/Git/myproject/
git remote remove origin
myAppleScript.applescript
do shell script "/Users/path/to/file/myShellScript.sh"

Что я делаю не так?

Ответы (3)

Чтобы не получить эту ошибку, вам нужно сделать myShellScript.shисполняемый файл.

В Терминале используйте следующую команду:

chmod u+x /path/to/file/myShellScript.sh

Кроме того, вы должны добавить шебанг в начало скрипта .

Пример:#!/bin/bash

Примечание. Используйте соответствующий шебанг для оболочки , в которой вы хотите обработать свой скрипт .

Если вы не хотите делать скрипт исполняемым, хотя я не вижу причин, по которым этого не хотелось бы, вы можете запустить его в AppleScript, как в следующем примере:

do shell script "bash /path/to/file/myShellScript.sh"

Примечание. Если вы хотите использовать shover bash, просто подставьте его в команду и shebang .

Как насчет встраивания сценария оболочки в файл сценария Apple? Как бы вы встроили несколько строк Shell Script в Apple Script?

Вы можете встроить свой сценарий оболочки в вызов AppleScript bashс помощью файла heredoc.

do shell script "/bin/bash -s <<'EOF'
cd /Users/myusername/Git/myproject/
/usr/bin/git remote remove orig
EOF"

Воспроизведите свой код с помощью osascript

osascript << EOF
tell application "Terminal"
activate
end tell
EOF