Pfadunterschied zwischen Skript und Shell


2

Warum unterscheidet sich die Ausgabe von $ PATH in einem Skript von der Ausgabe von $ PATH auf dem Terminal? Auch für ein minimales Skript wie dieses:

#!/bin/bash
echo $PATH

Es stimmt nicht mit dem überein, was ich erhalte, wenn ich $ PATH in das Terminal eingebe. Aus diesem Grund erhalte ich immer wieder "Befehl nicht gefunden". Wie kann ich das beheben? Ich benutze OSX High Sierra.


Ok, "export PATH" scheint einen Teil meines Problems gelöst zu haben. Eines der Programme, die ich verwende, ist dynamisch verknüpft. Aus irgendeinem Grund wird auch mit Exportpfad "dyld: Bibliothek nicht geladen" angezeigt. Zumindest befindet sich das Programm jetzt im Pfad, wenn es vom Skript aufgerufen wird. Was macht "export PATH"? Und wie kann ich auch die Bibliothekspfade einbeziehen?


1
Woher führen Sie das Skript aus?
Nohillside

1
die Shell, indem Sie einfach bash ./script eingeben, zum Beispiel
Lenzinho

1
Was sind die Ergebnisse von- /usr/bin/grep PATH "$HOME/.bashrc"?
fd0

1
Was passiert, wenn Sie gerade laufen ./script(benötigen möglicherweise eine chmod +x scripterste)?
Nohillside

1
Bitte zeigen Sie uns den Inhalt Ihres Skripts. Außerdem sollten Sie nicht nur $ PATH eingeben, sondern auch etwas Ähnliches wie echo "$PATH"oder env | grep -i "PATH"-, das Ihnen den Inhalt der Variablen PATH anzeigt, im Gegensatz zu Ihrer Shell, die versucht, (den Inhalt) als Befehl auszuführen, was zu Problemen führen kann. Außerdem wollen wir sehen , welche Shell Sie verwenden: env | grep -i shell. Klingt so, als ob Ihr Skript Ihre Umgebungsvariablen nicht erbt, was nicht allzu unerwartet ist. Wir müssen nur herausfinden, warum.
Harv
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.