После того, как bash распечатает исходные файлы
Я пытаюсь выяснить, как некоторые определения функции virtualenvwrapper попадают в мою оболочку. (Более конкретно, потому что это старая версия, и я хочу избавиться от них, вставьте новую версию.)
Я нашел в своем ~/.bashrc материал для поиска и даже проверил, что происходит
env -i HOME=/tmp bash
не имеет определений, что верно, поэтому я уверен, что это не система bashrc.
Итак, bash при настройке источников оболочки имеет ряд файлов, таких как:
source .bashrc
а также
source .bash_aliases
И так далее. Но есть ли способ заставить bash печатать имена файлов, которые он использует, чтобы я мог попытаться выяснить, где происходит этот источник?
2 ответа
Дела
set -x
до
source .bashrc
даст след выполнения команд.
Для того, чтобы отфильтровать source
из вывода, скажем
source .bashrc 2>&1 | grep source
Как насчет запуска bash в режиме отладки?
bash -x
Также вы можете имитировать логин с -l
bash -x -l
С этим вы можете проверить, как все происходит.
А также, посмотрите, может ли быть полезна переменная массива BASH_SOURCE.