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.


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.


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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.