Що викликає всі ці рядки "оголосити -x ...", коли я відкриваю термінал?


15

Коли я відкриваю термінал на своїй машині 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 =".

Оновлення (відповідаючи на відповідь важкої людини ): я привітався ~/.bashrc, ~/.bash_profileі /etc/bashrcза "заявити", і нічого не знайшов.

Я переглянув, /etc/bashrcоскільки ~/.bashrcмістить таке:

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

Я нічого не бачу в скриптах ~/.bashrcабо ~/.bash_profileскриптах, окрім наведеного вище коду, "PATH = ...", "експортувати ..." та "псевдоніму ...".

Коли я запускаю .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 , ваша пропозиція допомогла мені знайти його. Виявляється, всі ці рядки "оголосити -x ..." виводяться, якщо один запускається export(сам), і я випадково вставив CR між "експортом" та "PATH =…" в моєму .bashrc.


дивіться у /etc/profile.d/
freiheit

Що слід шукати в /etc/profile.d/? Які всі ці файли? (Можливо, я повинен створити нове запитання про це.)
Дарил Спітцер

Спасибі. У моєму випадку це було CR між експортом та PATH теж :)
березня 1212

Відповіді:


8

Біжи

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

для запуску bash у багатослівному режимі. Це буде друкувати кожен рядок файлу ініціалізації під час його читання, а також кожен рядок файлу ініціалізації під час його виконання, копіюючи вихід у файл, який називається foo. Потім ви можете заглянути, fooщоб побачити, що викликає declare -xпокликання.


6

З'ясували, що безліч аргументів declare ...- результат exportзапуску десь без аргументу.

Я знайшов випадковий новий рядок у своєму .bashrc:

export
VARIABLE=value

Яка мала бути

export VARIABLE=value

Так. Це правильна відповідь. Якщо ви введете "експортувати" самостійно у своєму терміналі, ви побачите той самий декларувати -x вихід, який відображається.
Стерлінг Борн

Так, це стосується мене! Я випадково помістив зміст експорту в наступний новий рядок. Я ставлю їх у один рядок, і це працює.
фанчина

3

Так, цілком ймовірно, що він надходить з вашого .bashrc, оскільки ви його відредагували. Можливо, ви ввели скрипт синтаксису в скрипт, який може призвести до виведення.

Ви можете переконатися, що ці рядки існують у вашому .bashrc, ввівши:

grep declare ~/.bashrc

Ви повинні побачити принаймні ті 4 рядки, роздруковані на консолі. Ви також можете спробувати запустити свій скрипт .bashrc з підказки і побачити, чи з’являються помилки:

bash ~/.bashrc
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.