Das hat mich verrückt gemacht. Ich habe ein Skript, das eine ausführbare Datei in ist /usr/local/bin/
, die perfekt in Terminal funktioniert, aber ich kann Applescript nicht dazu bringen, es aufzurufen:
RunShell("estc R505")
on RunShell(oscript)
do shell script oscript
end RunShell
macht nichts. Ich habe versucht, stattdessen den tatsächlichen Standort anzugeben /usr/local/bin/estc
und ihn in bash mit bash oder sh ... anzurufen ... nichts funktioniert. Es sollte eine Textzeichenfolge zurückgeben und funktioniert perfekt im Terminal.
Wenn Sie im Skript-Editor den folgenden AppleScript- Befehl ausführen :
do shell script "echo $PATH"
Sie werden sehen, wie das PATH
für den do shell script
Befehl definiert ist :
"/usr/bin:/bin:/usr/sbin:/sbin"
Sie müssen den vollständig qualifizierten Pfadnamen zu jeder ausführbaren Datei hinzufügen , die sich nicht in der PATH
oben gezeigten befindet, damit sie in einem AppleScript- do shell script
Befehl funktioniert .
Eine andere Möglichkeit besteht darin, dem Befehl einen export PATH
Befehl hinzuzufügen , z.do shell script
set exportPath to "export PATH=$PATH:/usr/local/bin:/opt/X11/bin:"
Und in Ihrem Fall verwenden Sie es als, zB:
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
Passen Sie natürlich den ...
Teil von an export PATH=$PATH:...
, um Ihren tatsächlichen Wert widerzuspiegeln PATH
, der nicht in der Standardeinstellung PATH
enthalten ist , die an den do shell script
Befehl übergeben wird , wie weiter oben gezeigt.
Das könnte funktionieren:
do shell script "PATH=/usr/local/bin:$PATH estc R505"
Benutzer3439894
estc
, ist es eine ausführbare Binärdatei oder eine ausführbare Skriptdatei? Wenn letzteres ausführbare Dateien aufruft und nicht standardmäßig anPATH
dendo shell script
Befehl übergeben wird , sollte der zweite Teil meiner Antwort helfen. BTW Was macht derestc
Befehl ?