but after setting the environmental variables
Parece que você não fez isso corretamente.
Os erros que você está recebendo significam que os caminhos (como /home/john/android
) estão sendo usados como os nomes das variáveis, em vez de como os valores atribuídos a eles .
- A sintaxe correta para atribuir uma variável é
NAME=value
. - A sintaxe correta para exportar uma variável (com qualquer valor, se houver, já foi atribuída) é
export NAME
. - A sintaxe correta para atribuir e exportar uma variável (com o valor atribuído) ao mesmo tempo é
export NAME=value
.
Eu suspeito que você está tentando fazer a terceira coisa, mas usando a sintaxe errada. Quatro erros comuns que podem gerar erros, como o que você está vendo, são:
-
Usando espaços em vez de
=
.export NAME value
está incorreto;value
é então interpretado como o nome de uma variável subsequente para exportar.(Isso acontece porque
export NAME1 NAME2
é a sintaxe correta para exportar múltiplas variáveis.) -
Colocando espaços em torno de
=
. Em muitas linguagens de programação, é válido e estilisticamente preferido agrupar operadores com espaços na maior parte do tempo. Mas, para atribuir um valor a uma variável em um script de shell (ou outra situação em que você esteja emitindo comandos do shell), isso não é permitido.NAME = value
(em um comandoexport
ou outro) não funcionará; você deve usarNAME=value
.(
export NAME = value
tenta exportar as variáveis chamadasNAME
,=
evalue
. Felizmente, isso nunca parece ter êxito silenciosamente porque a tentativa de exportar uma variável chamada=
é um erro de sintaxe.export NAME= value
parecerá funcionar, mas não atribuivalue
aNAME
- em vez disso, atribui a cadeia vazia de comprimento zero aNAME
e a exporta, e exporta separadamente a variávelvalue
. erros comuns.) -
Separando partes do valor da variável com espaços. As variáveis de ambiente can contêm espaços, mas na prática raramente são usadas como separadores de campos em variáveis de ambiente. Quando uma única variável contém intencionalmente vários caminhos, geralmente
:
é usado para separá-los. -
Não citar espaços ao atribuir variáveis. Às vezes, o valor de uma variável de ambiente deve conter um espaço. Por exemplo, pode ser o nome de um diretório que realmente contenha um espaço. Nesse caso, é necessário citar qualquer espaço.
Uma maneira de fazer isso é precedê-los com
\
. Veja Como posso proteger os parênteses transmitidos a um comando cd? e Não é possível excluir o arquivo para obter informações sobre outras formas - os métodos apresentados nas respostas aplicar, mesmo que nenhuma das questões seja especificamente sobre a atribuição a variáveis de ambiente.Por exemplo, aqui estão algumas maneiras de exportar a variável de ambiente
SILLYPATH
com o valor/home/ek/silly name/bin
:export SILLYPATH=/home/ek/silly\ name/bin
export SILLYPATH='/home/ek/silly name/bin'
export SILLYPATH="/home/ek/silly name/bin"
Geralmente, quando uma pasta que você deve usar em um shell ou atribui a uma variável de ambiente amplamente usada contém um espaço, ela pode se beneficiar da renomeação. (Mas às vezes isso é impraticável ou indesejável.)
Eu suspeito que isso seja informação suficiente para você encontrar e corrigir o bug no seu arquivo .bashrc
. Se você precisar de mais ajuda, você deve postar o conteúdo completo desse arquivo para análise. (É apenas por coincidência que o seu problema foi encontrado com freqüência e com uma mensagem de erro suficientemente transparente, para tornar possível uma resposta geral como essa).