När jag kör export $PATH
i bash får jag felet not a valid identifier
. Varför?
Kommentarer
Svar
Att köra export $PATH
försöker exportera en variabel med ett namn som är lika med -värdet av $PATH
(efter orduppdelning ). Det motsvarar att skriva något som export /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
. Och eftersom /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
inte är ett giltigt variabelnamn, misslyckas det. Vad du vill göra är export PATH
.
export
(motsvarande declare -x
) i Bash gör helt enkelt variabeln tillgänglig för subshells.
Använd printf %q "$PATH"
för att skriva ut värdet på en variabel på ett säkert och lättläst sätt.
Kommentarer
- I grund och botten har jag skapat några variabler, JAVA_HOME, MAVEN_HOME och vill se till att bash har ställt in dem korrekt, så jag exporterar $ PATH för att se om sökvariablerna är korrekt inställda på PATH-variabeln
- Detta är skalberoende, inte OS-beroende. Jag skulle bli förvånad om
export
någonsin fungerade så i Bash. - Dessutom PATH-variabeln är redan exporterad och behöver inte exporteras igen.
Svar
Följande kommando export $PATH=somePath
returnerar not a valid identifier
och det beror på $
före PATH
variabel.
lösning:
export PATH=somePath
Kommentarer
- Att är det som exakt svarar på min fråga. Tack Kevin
Svar
Du borde använda det så här:
export PATH=$PATH:/something/bin
I stället för:
export $PATH=$PATH:/something/bin
tar du bara bort $
från vänster på sidan.
Svar
Har du förmodligen behövt lägga till en $ PATH till din befintliga PATH-variabel?
export PATH=$PATH:/something/bin
Kommentarer
- OK, det här är i samma bollpark som frågan, men det är ute i vänstra fältet .
$
”value of”. Du ' exporterar variabelnPATH
utan åtkomst till dess värde, så den ' sexport PATH
utan$
.