/ 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


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.