Kiedy otwieram terminal na moim komputerze Fedory (lub ssh do niego), dostaję kilka takich linii przed pytaniem:
declare -x CVS_RSH="ssh"
declare -x DISPLAY="localhost:10.0"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
…
Co to powoduje? Może się to zdarzyć po edycji mojej .bashrc
, ale wydaje mi się, że wszystko, co zmieniłem, to dodanie innej ścieżki katalogu do „PATH =”.
Aktualizacja (w odpowiedzi na odpowiedź Heavyyda ): Grepowałem ~/.bashrc
, ~/.bash_profile
a /etc/bashrc
dla „deklarowania” nic nie znalazłem.
Spojrzałem, /etc/bashrc
ponieważ ~/.bashrc
zawiera następujące elementy:
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
Nie widzę niczego w skryptach ~/.bashrc
ani ~/.bash_profile
poza powyższym kodem, „PATH =…”, „export…” i „alias…”.
Kiedy uruchamiam .bashrc
skrypt (używając „ bash ~/.bashrc
”) lub .bash_profile
skrypt, widzę listę „deklaruje”, ale nie ma komunikatów o błędach. (Nic nie widzę, jeśli biegnę /etc/bashrc
.)
~./bash_profile
jest bardzo proste:
# .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
Rozwiązane : Dzięki andrew.n , twoja sugestia pomogła mi to wyśledzić. Okazuje się, że wszystkie te wiersze „deklaruj -x…” są wyprowadzane, jeśli jeden z nich działa export
(sam w sobie), a ja przypadkowo wstawiłem CR pomiędzy „export” a „PATH =…” w moim .bashrc
.
źródło
Odpowiedzi:
Biegać
env - HOME="$HOME" /bin/bash --login -xv 2>&1 | tee foo
do uruchamiania bash w trybie pełnym. Spowoduje to wydrukowanie każdego wiersza pliku inicjującego podczas odczytywania i każdego wiersza pliku inicjującego podczas jego wykonywania, kopiując dane wyjściowe do pliku o nazwie
foo
. Następnie możesz zajrzećfoo
do środka, aby zobaczyć, co powodujedeclare -x
wywołanie.źródło
Zrozumiałem, że wiele
declare ...
instrukcji jest wynikiemexport
uruchomienia gdzieś bez argumentu.Znalazłem przypadkową nową linię w moim
.bashrc
:Które powinno być
źródło
Tak, prawdopodobnie pochodzi z twojego .bashrc, ponieważ go edytowałeś. Być może w skrypcie wprowadzono błąd składniowy, który może spowodować, że zostanie wyświetlony.
Możesz upewnić się, że te wiersze istnieją w pliku .bashrc, wpisując:
Powinieneś zobaczyć przynajmniej te 4 linie wydrukowane na konsoli. Możesz także spróbować uruchomić skrypt .bashrc z wiersza polecenia i sprawdzić, czy wystąpią jakiekolwiek błędy:
źródło