1 votes

Shell script d'Applescript

Cela m'a rendu fou. J'ai un script qui est un exécutable à l'intérieur de /usr/local/bin/ qui fonctionne parfaitement dans Terminal, mais je ne parviens pas à faire en sorte qu'Applescript l'appelle :

RunShell("estc R505")

on RunShell(oscript)
    do shell script oscript
end RunShell

ne fait rien. J'ai essayé de donner l'emplacement actuel /usr/local/bin/estc à la place, et en l'appelant dans bash avec bash ou sh... rien ne fonctionne. Il devrait retourner une chaîne de texte, et fonctionne parfaitement dans le terminal.

2voto

user3439894 Points 52496

En script Éditeur si vous courir les suivants AppleScript commande :

do shell script "echo $PATH"

Vous verrez comment le PATH est définie par rapport à la do shell script commande :

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

Vous devez inclure le nom de chemin entièrement qualifié à n'importe quel exécutable qui n'est pas dans le PATH , illustré ci-dessus, pour qu'il fonctionne dans une AppleScript do shell script commande .


Autre option est d'ajouter un export PATH commande à la do shell script commande , par exemple :

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

Et dans votre cas, utilisez-le comme, par exemple :

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

Il est évident qu'il faut ajuster le ... partie de export PATH=$PATH:... pour refléter votre PATH qui n'est pas incluse dans le par défaut PATH transmis au do shell script commande comme indiqué plus haut.

0voto

ssc Points 109

Cela pourrait fonctionner :

do shell script "PATH=/usr/local/bin:$PATH estc R505"

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X