Wie führe ich ein Shell-Skript von einem AppleScript aus?

Ich verwende einen Mac mit OSX Yosemite v.10.10.5.

Wenn ich versuche, mein Shell-Skript von meinem AppleScript aus auszuführen, erhalte ich die folgende Fehlermeldung:

Fehlermeldung im AppleScript Script Editor
error "sh: /Users/path/to/file/myShellScript.sh: Permission denied" number 126
myShellScript.sh
cd /Users/myusername/Git/myproject/
git remote remove origin
meinAppleScript.applescript
do shell script "/Users/path/to/file/myShellScript.sh"

Was mache ich falsch?

Antworten (3)

Um diesen Fehler nicht zu erhalten, müssen Sie myShellScript.shausführbar machen.

Verwenden Sie in einem Terminal den folgenden Befehl:

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

Außerdem sollten Sie oben im Skript einen Shebang hinzufügen .

Beispiel:#!/bin/bash

Hinweis: Verwenden Sie den entsprechenden Shebang für die Shell , die Sie für die Verarbeitung Ihres Skripts verwenden möchten .

Wenn Sie das Skript nicht ausführbar machen möchten , obwohl ich keinen Grund dafür sehe, können Sie es in AppleScript wie im folgenden Beispiel ausführen:

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

shHinweis: Wenn Sie over verwenden möchten bash, ersetzen Sie es einfach im Befehl und im shebang .

Was ist mit dem Einbetten des Shell-Skripts in die Apple-Skriptdatei? Wie würden Sie einige Zeilen Shell Script in Apple Script einbetten?

Sie können Ihr Shell-Skript in AppleScript-Aufrufe bashmit einer heredoc.

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

Spielen Sie Ihren Code mit osascript ab

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