/ usr / local / bin / wurde von Automator und Java nicht gefunden, ist aber im Terminal vorhanden [duplizieren]

2

Automator Shell Script

echo $PATH
eval /usr/libexec/path_helper -s
echo $PATH

Ergebnisse:

nach dem ersten echo $PATH:

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

nach dem zweiten echo $PATH:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

Wenn ImageMagick in / usr / local / bin installiert wird, bedeutet dies, dass es fehlschlägt, wenn ich mich nicht zuerst mit dem Pfad befasse und weiß, woher Automator (Java ist dasselbe) seinen Pfad bezieht und wie die fehlenden Pfade dauerhaft hinzugefügt werden

Jeff Vallis
quelle
Getrennte Zeilen geben $ PATH >> eval / usr / libexec / path_helper -s >> wieder. $ PATH
Jeff Vallis
Ergebnisse >> erstes Echo = / usr / bin: / bin: / usr / sbin: / sbin zweites Echo = / usr / local / bin: / usr / bin: / bin: / usr / sbin: / sbin: / opt / X11 / bin
Jeff Vallis
Ich habe deine Frage bearbeitet. Bitte überprüfen Sie meine Mods
klanomath
Die Antworten für Automator und Java unterscheiden als die ersten über die grafische Benutzeroberfläche und die zweiten die meisten Fälle werden über die Kommandozeile sein und wird - es gibt viele Duplikate beide auf dieser Seite
Mark

Antworten:

2

Automator verwendet die im Kernel fest codierte Pfadvariable.

sysctl user.cs_path
user.cs_path = /usr/bin:/bin:/usr/sbin:/sbin

Tatsächlich ist dies der Pfad, der für das launchd eines Benutzers festgelegt wurde und dann von Automator übernommen wird, wenn Sie die Anwendung starten.

launchctl getenv PATH
/usr/bin:/bin:/usr/sbin:/sbin

Verwenden Sie die absoluten Pfade zu Ihren ausführbaren Dateien oder ändern Sie den PATH im Run Shell Script.

fd0
quelle
Sehr interessant! +1 Ein einfaches echo $PATHRun-Shell-Skript bestätigt dies, und ich hatte in der Vergangenheit Probleme und habe dies nie überprüft! Jetzt weiß ich, warum ich einige Pfade hart codieren musste! :)
user3439894
Sie können auch eine PATH= ...Anweisung an den Anfang des Shell-Skripts setzen und den Pfad zur ausführbaren Datei nicht fest codieren. Sie können dies zu Ihrer Antwort hinzufügen, wenn Sie möchten.
user3439894