
Ich versuche, ein einfaches Bash-Skript auszuführen, das Befehle verwendet wc
. cat
Das Skript schlägt mit folgendem Fehler fehl:
wc: command not found
oder dies (nachdem ich den String kommentiert habe, der wc verwendet):
cat: command not found
Ich habe keine Ahnung, was los ist. Ein ähnliches Skript, das genau dieselben Codefragmente enthält, funktioniert einwandfrei. Beide Skripte werden unter denselben Bedingungen verwendet. Außerdem
machine:~ user$ which wc
/usr/bin/wc
Und
machine:~ user$ which cat
/bin/cat
Antwort1
Wie @Tyson anmerkt, PATH
enthält die Variable die Antwort.
Ich wollte nur darauf hinweisen, dass die Verwendung vollständiger Pfade in Ihren Skripten normalerweise als gute Praxis gilt. Anstatt beispielsweise aufzurufen, wc
können Sie auch aufrufen /usr/bin/wc
. Abgesehen davon, dass das obige Problem gelöst wird, ist es sicherer, da Sie verhindern, dass eine Anwendung ausgeführt wird, die jemand möglicherweise unter demselben Namen in Ihren PATH eingefügt hat ... Ich kann mich nicht an den Namen dieser Angriffe erinnern, aber Sie verstehen, was ich meine.=)