Eu vejo na minha bola de cristal que você está editando o arquivo em uma máquina Windows.
O Windows e o Linux têm maneiras diferentes de representar quebras de linha. No Linux (como em qualquer sistema unix), uma linha consiste em uma série de caracteres que termina com um caractere de alimentação de linha (LF = \n
= Ctrl + J). No Windows, as linhas são separadas por uma sequência de dois caracteres: retorno de carro e, em seguida, avanço de linha (CRLF = \r\n
= Ctrl + M Ctrl + J).
Seu arquivo contém o comando export PATH=…
, depois CR, LF e o comando export LD_LIBRARY_PATH
sem nenhuma nova linha no final. Para programas Linux, a mesma sequência de bytes representa export PATH=…
com um caractere CR no final, depois uma quebra de linha e, em seguida, uma linha inacabada contendo export PATH=…
. Seu shell executa fielmente o primeiro comando, que adiciona um diretório a PATH
com um nome que termina em um caractere CR. Como não há diretório com esse nome, a alteração de PATH
não tem efeito. Em seguida, o shell trata a linha parcial como se fosse uma linha completa, que é o comando pretendido para definir LD_LIBRARY_PATH
.
Quando você anexou o diretório pela segunda vez, você não digitou um caractere CR no comando, então o comando funcionou. Quando você exibiu a saída, o caractere CR foi interpretado pelo terminal para significar “voltar ao início da linha”. Já que você tinha exatamente o mesmo conteúdo antes e depois do caractere CR, isso pareceu imprimir esse conteúdo uma vez - na verdade, ele foi impresso duas vezes na mesma posição.
Edite seus arquivos de configuração do Linux no Linux, ou diga ao seu editor do Windows para usar as terminações de linha do Linux (a maioria dos editores de texto que são menos estressados do que o Bloco de Notas pode fazer isso).