Wenn ich export $PATH in bash ausführe, erhalte ich den Fehler not a valid identifier. Warum?

Kommentare

  • In Bash- und anderen Shells ist $ „Wert von“. Sie ' exportieren die Variable PATH und greifen nicht auf ihren Wert zu, sodass ' s export PATH ohne $.
  • Ein häufigeres ähnliches Problem: askubuntu.com/questions/529919/ …

Antwort

Wenn Sie export $PATH ausführen, wird versucht, eine Variable mit einem Namen zu exportieren, der dem -Wert von $PATH (nach Wortteilung ). Das heißt, es entspricht dem Schreiben von export /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin. Und da /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin kein gültiger Variablenname ist, schlägt dies fehl. Sie möchten export PATH.

export (entspricht declare -x) in Bash stellt die Variable einfach zur Verfügung Unterschalen.

Um den Wert einer Variablen sicher und lesbar zu drucken, verwenden Sie printf %q "$PATH".

Kommentare

  • Grundsätzlich habe ich einige Variablen erstellt, JAVA_HOME, MAVEN_HOME, und möchte sicherstellen, dass bash sie richtig gesetzt hat. Deshalb exportiere ich $ PATH, um zu sehen, ob die Pfadvariablen richtig auf die PATH-Variable gesetzt wurden
  • Dies ist Shell-abhängig, nicht OS-abhängig. Ich wäre überrascht, wenn export jemals so in Bash funktioniert hätte.
  • Zusätzlich die PATH-Variable wird bereits exportiert und muss nicht erneut exportiert werden.

Antwort

Der folgende Befehl export $PATH=somePath gibt not a valid identifier zurück und das liegt an der $ vor der Variablen PATH.

Lösung:

export PATH=somePath

Kommentare

  • Das ist genau das, was meine Frage beantwortet. Danke Kevin

Antwort

Sie sollten es folgendermaßen verwenden:

export PATH=$PATH:/something/bin 

Anstelle von:

export $PATH=$PATH:/something/bin 

entfernen Sie einfach das Zeichen $ von links Handseite.

Antwort

Sie mussten wahrscheinlich einen $ PATH an Ihre vorhandene PATH-Variable anhängen?

export PATH=$PATH:/something/bin 

Kommentare

  • OK, dies befindet sich im selben Ballpark wie die Frage, befindet sich jedoch im linken Feld .

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.