bash: 'exportar: comando não encontrado

bash: 'exportar: comando não encontrado

Há um erro toda vez que um novo terminal é aberto,

erro: "bash: 'export: comando não encontrado"

Eu apenas copio export all_proxy="" e exporto ALL_PROXY="" para o terminal, então quando eu abrir um novo terminal, aparecerá a imagem da situação.

Esta é a imagem:

insira a descrição da imagem aqui

Eu insiro o comando:

grep export ~/.bashrc

saída:

insira a descrição da imagem aqui

Eu insiro o comando:

env SHELLOPTS=xtrace \
    BASH_XTRACEFD=7 \
    PS4='[${BASH_SOURCE:-$BASH_EXECUTION_STRING}:$LINENO]> ' \
    7> >(grep ‘) bash -l

saída:

insira a descrição da imagem aqui

Responder1

Parece que você editou seu arquivo .bashrc.

Posso replicar esse erro exatamente se colocar

'‘export'        

como a última linha do meu .bashrc

Para verificar basta executar

grep export ~/.bashrc

Se grepfornecer uma saída como a acima, edite-a em seu arquivo ~/.bashrc.

Editar: Na última edição da postagem, você pode ver que há 2 linhas começando com 'export, exclua ambas de ~/.bashrc.

Responder2

Supondo que você copiou e colou esse comando como está, ele está reclamando que o ‘exportcomando não foi encontrado onde está o U + 2018aspas simples esquerdascaractere não ASCII (não deve ser confundido com o caractere 'de apóstrofo/aspas simples ASCII (U+0027) ou `crase/acento grave ASCII (U+0060)).

Como esse caractere não é especial de forma alguma bash, uma linha de comando como:

‘export foo=bar’

(onde está U+2019, as aspas simples à direita)

É interpretado como a execução do ‘exportcomando foo=bar’como argumento. Você escreveu:

'export foo=bar'

em vez disso, é com aqueles U+2018 e U+2019 substituídos pelo apóstrofo ASCII, um caractere especial por bashser um operador de aspas, que teria sido tratado como execução do export foo=barcomando sem nenhum argumento. Não existe tal comando. Também não é isso que você quer.

Você quer

export foo=bar

ou

'export' 'foo=bar'

Isso é para executar o exportcomando com um foo=barargumento.

Aqui, você precisará remover o caractere U+2018 (e possivelmente o caractere U+2019 correspondente, se houver) onde quer que você o tenha inserido em seu ~/.bashrcou em outro lugar. De onde quer que você copie e cole esse código, esses caracteres não foram planejados para serem copiados.

Para descobrir onde esse comando falso foi introduzido, se não estiver ~/.bashrc(embora sua última edição mostre que ele está de ~/.bashrcfato), você pode tentar executar:

env SHELLOPTS=xtrace \
    BASH_XTRACEFD=7 \
    PS4='[${BASH_SOURCE:-$BASH_EXECUTION_STRING}:$LINENO]> ' \
    7> >(grep ‘) bash -l

( no entanto $PS4, seria ignorado por shells em execução como rootbash-4.4 ou mais recente, o que parece ser o seu caso, e é por isso que você vê ++em vez do nome do arquivo e do número da linha).

informação relacionada