Когда я открываю терминал на моей машине Fedora (или в ssh), я получаю несколько строк, подобных этой, перед приглашением:
declare -x CVS_RSH="ssh"
declare -x DISPLAY="localhost:10.0"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
…
Чем это вызвано? Это могло произойти после того, как я отредактировал свой .bashrc
, но я верю, что все, что я изменил, это добавление другого пути к каталогу в «PATH =».
Обновление (в ответ на ответ хэвида ): я grep'ed ~/.bashrc
, ~/.bash_profile
а /etc/bashrc
для «объявить» и ничего не нашел.
Я посмотрел, /etc/bashrc
потому что ~/.bashrc
содержит следующее:
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
Я не вижу ничего в скриптах ~/.bashrc
или, ~/.bash_profile
кроме приведенного выше кода, «PATH =…», «export…» и «alias…».
Когда я запускаю свой .bashrc
сценарий (используя « bash ~/.bashrc
») или .bash_profile
сценарий, я вижу список «объявляет», но нет сообщений об ошибках. (Я ничего не вижу, если я бегу /etc/bashrc
.)
~./bash_profile
очень просто:
# .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
Решено : Спасибо andrew.n , ваше предложение помогло мне отследить его. Оказывается, что все эти строки "Declare -x ..." выводятся, если он запускается export
(сам по себе), и я случайно вставил CR между "export" и "PATH = ..." в моем .bashrc
.
источник
Ответы:
Бегать
env - HOME="$HOME" /bin/bash --login -xv 2>&1 | tee foo
запустить bash в подробном режиме. Это напечатает каждую строку файла инициализации, когда он читается, и каждую строку файла инициализации, когда он выполняется, копируя выходные данные в файл с именем
foo
. Тогда вы можете заглянуть внутрь,foo
чтобы увидеть, что вызываетdeclare -x
вызов.источник
Выяснилось, что множество
declare ...
утверждений является результатом того, чтоexport
они выполняются где-то без аргументов.Я обнаружил случайный перевод строки в моем
.bashrc
:Который должен был быть
источник
Да, вероятно, это исходит от вашего .bashrc, потому что вы его отредактировали. Возможно, вы ввели в скрипт синтаксическую ошибку, которая может привести к ее выводу.
Вы можете убедиться, что эти строки существуют в вашем .bashrc, набрав:
Вы должны увидеть как минимум те 4 строки, которые выводятся на консоль. Вы также можете попробовать запустить скрипт .bashrc из командной строки и посмотреть, нет ли ошибок:
источник