O que está causando todas essas linhas “declare -x…” quando abro um terminal?

15

Quando abro um terminal na minha máquina Fedora (ou ssh nele), recebo várias linhas como esta antes do prompt:

declare -x CVS_RSH="ssh"
declare -x DISPLAY="localhost:10.0"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
…

O quê está causando isto? Isso pode ter ocorrido depois que eu editei o meu .bashrc, mas acredito que tudo que mudei foi adicionar outro caminho de diretório para "PATH =".

Atualização (respondendo à resposta de heavyd ): Eu cumprimentei e ~/.bashrc, por "declarar", não encontrei nada.~/.bash_profile/etc/bashrc

Eu olhei /etc/bashrcporque ~/.bashrccontém o seguinte:

if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

Não vejo nada nos scripts ~/.bashrcou, ~/.bash_profileexceto o código acima, "PATH =…", "exportar ..." e "alias ...".

Quando executo meu .bashrcscript (usando " bash ~/.bashrc") ou .bash_profilescript, vejo a lista de "declara", mas nenhuma mensagem de erro. (Não vejo nada se eu correr /etc/bashrc.)

~./bash_profile é muito simples:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

Resolvido : Obrigado , andrew.n , sua sugestão me ajudou a encontrá -lo. Acontece que todas essas linhas "declare -x ..." são exibidas se uma é executada export(por si só), e eu acidentalmente inseri um CR entre "export" e "PATH = ..." no meu .bashrc.

Daryl Spitzer
fonte
procure em /etc/profile.d/
freiheit
O que devo procurar em /etc/profile.d/? O que são todos esses arquivos? (Talvez eu devesse criar uma nova pergunta sobre isso.)
Daryl Spitzer
Obrigado. No meu caso, foi o CR entre exportação e PATH também :)
Marlar

Respostas:

8

Corre

env - HOME="$HOME" /bin/bash --login -xv 2>&1 | tee foo

para iniciar o bash no modo detalhado. Isso imprimirá todas as linhas do arquivo de inicialização à medida que forem lidas e todas as linhas do arquivo de inicialização à medida que forem executadas, copiando a saída para um arquivo chamado foo. Então você pode olhar em foover o que está causando declare -xa ser chamado.

andrew.n
fonte
6

Descobrimos que muitas declare ...declarações são o resultado de exportserem executadas em algum lugar sem argumento.

Encontrei uma nova linha acidental no meu .bashrc:

export
VARIABLE=value

O que deveria ter sido

export VARIABLE=value
jgeewax
fonte
Sim. Essa é a resposta correta. Se você digitar "export" sozinho no seu terminal, verá a mesma declaração -x output exibida.
Sterling Bourne
Sim, isso se aplica a mim! Coloquei acidentalmente o conteúdo da exportação na próxima nova linha. Coloquei-os na mesma linha e funciona.
Fanchyna 21/0318
3

Sim, é provável que seja proveniente do seu .bashrc porque você o editou. Você pode ter introduzido um erro de sintaxe no script que pode causar a saída.

Você pode garantir que essas linhas existam no seu .bashrc digitando:

grep declare ~/.bashrc

Você deve ver pelo menos essas 4 linhas impressas no console. Você também pode tentar executar o script .bashrc no prompt e verificar se há algum erro:

bash ~/.bashrc
pesado
fonte