Bash liest die Umgebung nicht?

Bash liest die Umgebung nicht?

Der Kontext hierfür ist, dass ich den Pfad des Benutzers von xmonad lesen möchte, wobei der Pfad gegebenenfalls durch den Inhalt seiner .bashrc-Datei geändert wird.

Folgendes finde ich seltsam: Wenn ich xmonad ausführe, bash -cl "env && echo $PATH"gibt es ein zurück, envdas eins enthält $PATH, das nicht mit dem von echo zurückgegebenen übereinstimmt. (Ich möchte das erstere.)

Was gibt?

Und gibt es eine Möglichkeit, dies zu beheben, außer die envAusgabe zu analysieren?

Antwort1

Die Shell ersetzt zuerst den Wert von $PATH, wegen der Anführungszeichen. Ich bin mir nicht sicher, was das erste Anführungszeichen bewirkt, aber versuchen Sie es mit einem der

'bash -cl "env && echo $PATH"'
"bash -cl 'env && echo $PATH'"

Versuchen Sie nun, nur den Pfad aus der Umgebungsausgabe zu extrahieren? Wenn ja, echoist das nicht das richtige Tool. Sie möchtenenv | grep ^PATH=

verwandte Informationen