Wenn ich ein Terminal auf meinem Fedora-Rechner öffne (oder ssh in ihn hinein), erhalte ich vor der Eingabeaufforderung eine Reihe von Zeilen wie die folgende:
declare -x CVS_RSH="ssh"
declare -x DISPLAY="localhost:10.0"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
…
Was verursacht das? Dies kann vorgekommen sein, nachdem ich meine bearbeitet habe .bashrc
, aber ich glaube, alles, was ich geändert habe, war, einen anderen Verzeichnispfad zu "PATH =" hinzuzufügen.
Update (als Antwort auf die Antwort von heavyd ): Ich habe gegriffen ~/.bashrc
, ~/.bash_profile
und /etc/bashrc
für "deklarieren" und nichts gefunden.
Ich habe mir /etc/bashrc
da ~/.bashrc
folgendes angeschaut :
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
Ich sehe nichts in den Skripten ~/.bashrc
oder ~/.bash_profile
außer dem obigen Code "PATH = ...", "export ..." und "alias ...".
Wenn ich mein .bashrc
Skript (mit " bash ~/.bashrc
") oder .bash_profile
Skript ausführe, wird die Liste der "Deklarationen" angezeigt, aber keine Fehlermeldungen. (Ich sehe nichts, wenn ich renne /etc/bashrc
.)
~./bash_profile
ist sehr einfach:
# .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
Behoben : Danke andrew.n , dein Vorschlag hat mir geholfen, ihn aufzuspüren. Es stellt sich heraus, dass alle diese "declare -x ..." - Zeilen ausgegeben werden, wenn eine export
(von selbst) ausgeführt wird, und ich versehentlich ein CR zwischen "export" und "PATH = ..." in meine eingefügt habe .bashrc
.
quelle
Antworten:
Lauf
env - HOME="$HOME" /bin/bash --login -xv 2>&1 | tee foo
um bash im ausführlichen Modus zu starten. Dadurch wird jede Zeile der Initialisierungsdatei beim Lesen und jede Zeile der Initialisierungsdatei beim Ausführen gedruckt und die Ausgabe in eine aufgerufene Datei kopiert
foo
. Dann können Sie nachsehenfoo
, was dazu führtdeclare -x
, dass angerufen wird.quelle
Es wurde herausgefunden, dass viele
declare ...
Anweisungen das Ergebnis sind, wennexport
sie irgendwo ohne Argument ausgeführt wurden.Ich habe eine versehentliche Zeilenumbruch in meinem
.bashrc
:Welches hätte sein sollen
quelle
Ja, es ist wahrscheinlich, dass es von Ihrem .bashrc stammt, weil Sie es bearbeitet haben. Möglicherweise haben Sie einen Syntaxfehler in das Skript eingefügt, der dazu führen kann, dass dieser ausgegeben wird.
Sie können sicherstellen, dass diese Zeilen in Ihrer .bashrc-Datei vorhanden sind, indem Sie Folgendes eingeben:
Sie sollten mindestens diese 4 Zeilen auf der Konsole sehen. Sie können auch versuchen, Ihr .bashrc-Skript an der Eingabeaufforderung auszuführen und festzustellen, ob Fehler ausgegeben werden:
quelle