Script de shell desde Applescript

1

Esto me ha estado volviendo loco. Tengo un script que es un ejecutable dentro de /usr/local/bin/ , que funciona perfectamente en Terminal, pero no puedo hacer que Applescript lo llame:

RunShell("estc R505")

on RunShell(oscript)
    do shell script oscript
end RunShell

no hace nada. He intentado dar la ubicación real /usr/local/bin/estc en su lugar, y llamarlo a bash con bash o sh ... nada funciona. Debe devolver una cadena de texto y funciona perfectamente en el terminal.

    
pregunta Michael Riordan 14.01.2018 - 15:35

1 respuesta

2

En Editor de secuencias de comandos , si ejecuta el siguiente comando AppleScript :

do shell script "echo $PATH"

Verás cómo se define PATH para el comando do shell script :

"/usr/bin:/bin:/usr/sbin:/sbin"

Debes incluir el nombre de ruta completo a cualquier ejecutable que no esté en el PATH , que se muestra arriba, para que funcione en un AppleScript do shell script comando .

Otra opción es agregar un comando export PATH al comando do shell script , por ejemplo:

set exportPath to "export PATH=$PATH:/usr/local/bin:/opt/X11/bin:"

Y en su caso, utilícelo como, por ejemplo:

RunShell("estc R505")

on RunShell(oscript)
    set exportPath to "export PATH=$PATH:/usr/local/bin:/opt/X11/bin:; "
    do shell script exportPath & oscript
end RunShell

Obviamente, ajuste la porción ... de export PATH=$PATH:... para reflejar su PATH real que no está incluido en el predeterminado PATH pasado al comando do shell script como se muestra más arriba.

    
respondido por el user3439894 14.01.2018 - 16:27

Lea otras preguntas en las etiquetas