¿Cómo ejecutar un script de shell desde un AppleScript?

Estoy usando una Mac con OSX Yosemite v.10.10.5.

Cuando intento ejecutar mi script de shell desde mi AppleScript, aparece el siguiente mensaje de error:

Mensaje de error en 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
miAppleScript.applescript
do shell script "/Users/path/to/file/myShellScript.sh"

¿Qué estoy haciendo mal?

Respuestas (3)

Para no obtener ese error, debe hacer myShellScript.shejecutable.

En una Terminal, usa el siguiente comando:

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

Además, debe agregar un shebang en la parte superior de la secuencia de comandos .

Ejemplo:#!/bin/bash

Nota: Use el shebang apropiado para el shell que desea procesar su secuencia de comandos .

Si no desea que el script sea ejecutable, aunque no veo una razón por la que uno no quiera hacerlo, puede ejecutarlo en AppleScript como en el siguiente ejemplo:

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

Nota: si desea usar shover bash, simplemente sustitúyalo en el comando y el shebang .

¿Qué pasa con la incrustación de Shell Script en el archivo Apple Script? ¿Cómo incrustarías algunas líneas de Shell Script en Apple Script?

Puede incrustar su script de shell dentro de AppleScript llamando bashcon una extensión heredoc.

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

Juega tu código con osascript

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