"Não é um identificador válido" quando eu "exporto $ PATH"

37

Quando executo export $PATHno bash, recebo o erro not a valid identifier. Por quê?

ThaSaleni
fonte
8
No bash e em outras conchas, $é "valor de". Você está exportando a variável PATH, não acessando seu valor, por isso é export PATHsem $.
Gilles 'SO- stop be evil'
Um problema semelhante mais comum: askubuntu.com/questions/529919/…
Vadzim

Respostas:

40

A execução export $PATHtentará exportar uma variável com um nome igual ao valor de $PATH(após a divisão da palavra ). Ou seja, é equivalente a escrever algo parecido export /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin. E como /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binnão é um nome de variável válido, ele falha. O que você quer fazer é export PATH.

export(equivalente a declare -x) no Bash simplesmente disponibiliza a variável para subshells.

Para imprimir o valor de uma variável com segurança e legibilidade, use printf %q "$PATH".

l0b0
fonte
Basicamente, eu criei algumas variáveis, JAVA_HOME, MAVEN_HOME e quero ter certeza de que o bash as definiu corretamente, então exporto $ PATH para ver se as variáveis ​​do caminho foram definidas corretamente na variável PATH
ThaSaleni
11
Isso depende do shell, não do SO. Eu ficaria surpreso se exportalguma vez trabalhasse assim no Bash.
l0b0
Além disso, a variável PATH já está exportada e não precisa ser exportada novamente.
Kusalananda
19

O comando a seguir export $PATH=somePathretornará not a valid identifiere isso ocorre por causa da variável $before PATH.

solução:

export PATH=somePath

Kevin Crain
fonte
0

Você deve usá-lo desta maneira:

export PATH=$PATH:/something/bin

Ao invés de:

export $PATH=$PATH:/something/bin

basta remover o $sinal do lado esquerdo.

Abd ElRahman Mahareek
fonte
-1

Você provavelmente teve que anexar um $ PATH à sua variável PATH existente?

export PATH=$PATH:/something/bin
Thad Guidry
fonte
2
OK, isso está no mesmo estádio da questão, mas está no campo esquerdo.
G-Man diz 'Reinstate Monica'