Wanneer ik export $PATH in bash uitvoer, krijg ik de fout not a valid identifier. Waarom?

Reacties

  • In bash en andere shells is $ “waarde van”. U ' exporteert de variabele PATH opnieuw, zonder toegang tot de waarde ervan, dus ' s export PATH zonder $.
  • Een vaker voorkomend soortgelijk probleem: askubuntu.com/questions/529919/ …

Antwoord

Met export $PATH wordt geprobeerd een variabele te exporteren met een naam die gelijk is aan de waarde van $PATH (na woordsplitsing ). Dat wil zeggen, het is gelijk aan het schrijven van iets als export /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin. En aangezien /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin geen geldige variabelenaam is, mislukt het. Wat u wilt doen is export PATH.

export (equivalent aan declare -x) in Bash maakt de variabele eenvoudig beschikbaar voor subshells.

Om de waarde van een variabele veilig en leesbaar af te drukken, gebruikt u printf %q "$PATH".

Opmerkingen

  • In principe heb ik een aantal variabelen gemaakt, JAVA_HOME, MAVEN_HOME en ik wil er zeker van zijn dat bash deze correct heeft ingesteld, dus exporteer ik $ PATH om te zien of de padvariabelen correct zijn ingesteld op de PATH-variabele
  • Dit is shell-afhankelijk, niet OS-afhankelijk. Het zou me verbazen als export ooit zo zou werken in Bash.
  • Bovendien, de PATH-variabele is al geëxporteerd en hoeft niet opnieuw worden geëxporteerd.

Antwoord

Het volgende commando export $PATH=somePath retourneert not a valid identifier en dat komt door de $ voor de PATH variabele.

oplossing:

export PATH=somePath

Reacties

  • Dat is wat precies mijn vraag beantwoordt. Bedankt Kevin

Antwoord

Je zou het op deze manier moeten gebruiken:

export PATH=$PATH:/something/bin 

In plaats van:

export $PATH=$PATH:/something/bin 

verwijder gewoon het $ -teken van links kant.

Antwoord

Waarschijnlijk moest u een $ PATH toevoegen aan uw bestaande PATH-variabele?

export PATH=$PATH:/something/bin 

Reacties

  • OK, dit is in hetzelfde ballenpark als de vraag, maar het staat in het linkerveld .

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *