"Kein gültiger Bezeichner", wenn ich "$ PATH" exportiere

37

Wenn ich export $PATHin Bash renne, bekomme ich den Fehler not a valid identifier. Warum?

ThaSaleni
quelle
8
In Bash und anderen Shells $ist "Wert von". Sie exportieren die Variable PATH, nicht seinen Wert zugreifen, so ist es export PATHmit nicht $.
Gilles 'SO- hör auf böse zu sein'
Ein häufigeres ähnliches Problem: askubuntu.com/questions/529919/…
Vadzim

Antworten:

40

Beim Ausführen export $PATHwird versucht, eine Variable mit einem Namen zu exportieren, der dem Wert von $PATH(nach der Wortteilung ) entspricht. Das heißt, es ist gleichbedeutend mit dem Schreiben von etwas 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:/bines sich nicht um einen gültigen Variablennamen handelt, schlägt dies fehl. Was Sie tun möchten, ist export PATH.

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

Verwenden Sie, um den Wert einer Variablen sicher und lesbar auszudrucken printf %q "$PATH".

l0b0
quelle
Grundsätzlich habe ich einige Variablen, JAVA_HOME, MAVEN_HOME, erstellt und möchte sicherstellen, dass die Bash sie richtig gesetzt hat, also exportiere ich $ PATH, um zu sehen, ob die
Pfadvariablen
1
Dies ist abhängig von der Shell und nicht vom Betriebssystem. Es würde mich wundern, wenn ich exportjemals in Bash so arbeiten würde.
l0b0
Darüber hinaus ist die PATH-Variable bereits exportiert und muss nicht erneut exportiert werden.
Kusalananda
19

Der folgende Befehl export $PATH=somePathwird zurückgegeben not a valid identifierund das liegt an $der PATHVariable davor .

Lösung:

export PATH=somePath

Kevin Crain
quelle
0

Du solltest es so benutzen:

export PATH=$PATH:/something/bin

Anstatt:

export $PATH=$PATH:/something/bin

Entferne einfach das $Schild von der linken Seite.

Abd ElRahman Mahareek
quelle
-1

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

export PATH=$PATH:/something/bin
Thad Guidry
quelle
2
OK, das ist im selben Stadion wie die Frage, aber es ist draußen im linken Feld.
G-Man sagt, dass Monica am