После того, как 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.

Другие вопросы по тегам