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 de 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 variáveis nomeadasNAME
,=
evalue
. Felizmente isso nunca parece ter sucesso em silêncio, porque a tentativa de exportar uma variável chamada=
é um erro de sintaxe. Em contrasteexport NAME= value
vai aparecer para trabalhar, mas não atribuivalue
paraNAME
- em vez disso, ele atribui o vazio, cadeia de comprimento zero paraNAME
e exporta-lo, e separadamente as exportações, a variávelvalue
Ambos são. 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 citando 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 é preceder-los com
\
. Consulte Como posso proteger parênteses passados para 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 de 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 possa ser 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 uma frequência suficiente, e com uma mensagem de erro suficientemente transparente, para fazer uma resposta geral como esta possível.)