Når jeg kører export $PATH i bash, får jeg fejlen not a valid identifier. Hvorfor?

Kommentarer

  • I bash og andre skaller er $ “værdi af”. Du ' eksporterer variablen PATH uden adgang til dens værdi, så den ' s export PATH uden $.
  • Et mere almindeligt lignende problem: askubuntu.com/questions/529919/ …

Svar

Kørsel export $PATH forsøger at eksportere en variabel med et navn svarende til -værdien af $PATH (efter opdeling af ord ). Det svarer til at skrive noget som export /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin. Og da /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ikke er et gyldigt variabelnavn, mislykkes det. Hvad du vil gøre er export PATH.

export (svarende til declare -x) i Bash gør variablen simpelthen tilgængelig for subshells.

Brug printf %q "$PATH" til at udskrive værdien af en variabel sikkert og læsbart.

Kommentarer

  • Grundlæggende har jeg oprettet nogle variabler, JAVA_HOME, MAVEN_HOME og vil sikre mig, at bash har indstillet dem korrekt, så jeg eksporterer $ PATH for at se, om stivariablerne er korrekt indstillet til PATH-variablen
  • Dette er shell-afhængigt, ikke OS-afhængigt. Jeg ville blive overrasket, hvis export nogensinde fungerede sådan i Bash.
  • Derudover var PATH-variablen er allerede eksporteret og behøver ikke eksporteres igen.

Svar

Følgende kommando export $PATH=somePath returnerer not a valid identifier og det er på grund af $ før PATH variablen.

løsning:

export PATH=somePath

Kommentarer

  • At er, hvad der præcist svarer på min forespørgsel. Tak Kevin

Svar

Du skal bruge det på denne måde:

export PATH=$PATH:/something/bin 

I stedet for:

export $PATH=$PATH:/something/bin 

skal du bare fjerne $ -tegnet fra venstre håndsiden.

Svar

Har du sandsynligvis haft behov for at tilføje en $ PATH til din eksisterende PATH-variabel?

export PATH=$PATH:/something/bin 

Kommentarer

  • OK, dette er i samme boldpark som spørgsmålet, men det er ude i venstre felt .

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *