Cosa sta causando tutte queste righe "dichiarare -x ..." quando apro un terminale?


15

Quando apro un terminale sulla mia macchina Fedora (o ssh in esso), ottengo un sacco di linee come questa prima del prompt:

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

Cosa sta causando questo? Questo potrebbe essersi verificato dopo aver modificato il mio .bashrc, ma credo che tutto quello che ho cambiato sia stato aggiungere un altro percorso di directory a "PATH =".

Aggiornamento (rispondendo alla risposta di Hydyd ): ho grep'ed ~/.bashrc, ~/.bash_profilee /etc/bashrcper "dichiarare" e non ho trovato nulla.

Ho visto /etc/bashrcperché ~/.bashrccontiene quanto segue:

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

Non vedo nulla negli script ~/.bashrco ~/.bash_profiletranne il codice sopra, "PATH = ...", "export ..." e "alias ...".

Quando eseguo il mio .bashrcscript (usando " bash ~/.bashrc") o lo .bash_profilescript vedo l'elenco di "dichiara", ma nessun messaggio di errore. (Non vedo nulla se corro /etc/bashrc.)

~./bash_profile è molto semplice:

# .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

Risolto : grazie andrew.n , il tuo suggerimento mi ha aiutato a rintracciarlo. Si scopre che tutte quelle righe "dichiarare -x ..." vengono emesse se si esegue export(da solo), e ho accidentalmente inserito un CR tra "export" e "PATH = ..." nel mio .bashrc.


cerca in /etc/profile.d/
freiheit,

Cosa dovrei cercare in /etc/profile.d/? Cosa sono tutti quei file? (Forse dovrei creare una nuova domanda al riguardo.)
Daryl Spitzer il

Grazie. Nel mio caso è stato anche il CR tra esportazione e PERCORSO :)
marzo

Risposte:


8

Correre

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

per avviare bash in modalità dettagliata. Ciò stamperà ogni riga del file di inizializzazione durante la lettura e ogni riga del file di inizializzazione durante l'esecuzione, copiando l'output in un file chiamato foo. Quindi puoi guardare dentro fooper vedere cosa sta causando la declare -xchiamata.


6

Ho capito che molte declare ...affermazioni sono il risultato di essere exportstate eseguite da qualche parte senza argomentazioni.

Ho trovato una newline accidentale nel mio .bashrc:

export
VARIABLE=value

Quale avrebbe dovuto essere

export VARIABLE=value

Sì. Questa è la risposta corretta Se digiti "export" da solo nel tuo terminale, vedrai lo stesso output dichiarare -x.
Sterling Bourne,

Sì, questo vale per me! Ho accidentalmente inserito il contenuto dell'esportazione nella nuova riga successiva. Li metto sulla stessa linea e funziona.
Fanchyna,

3

Sì, è probabile che provenga dal tuo .bashrc perché l'hai modificato. È possibile che sia stato introdotto un errore di sintassi nello script che potrebbe causare l'output.

Puoi assicurarti che queste righe esistano nel tuo .bashrc digitando:

grep declare ~/.bashrc

Dovresti vedere almeno quelle 4 righe stampate sulla console. Puoi anche provare a eseguire lo script .bashrc dal prompt e vedere se vengono generati errori:

bash ~/.bashrc
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.