В терминале (xterm, aterm и т. Д.) Проверьте, как была вызвана оболочка: оболочка входа в систему покажет «-bash», а не входящая в систему оболочка - «bash» при вызове echo $0
.
$ echo $0 -bash $ bash $ echo $0 bash
Оболочка входа в систему bash будет читать следующее по порядку:
- / И т.д. / профиль
- ~ / .Bash_profile
- ~ / .Bash_login
- ~ / .Profile
Проверьте, существует ли какой-либо из этих файлов и сбрасывают ли они переменную. Вы также должны следить за любыми файлами, которые эти файлы включают.
Если bash не вызывается как оболочка входа в систему, он все равно будет читать приведенные ниже файлы, если определено, что это интерактивная оболочка.
- /etc/bash.bashrc
- ~ / .Bashrc
Простой способ определить тип вызываемой оболочки bash - это определить ваши .bash_profile и .bashrc, а также echo "Login shell" и "Interactive shell" соответственно.
Как только вы узнаете, какая оболочка вызывается, у вас есть возможность добавить свой скрипт в файл .bashrc или .bash_profile в вашем домашнем каталоге. Кроме того, вы можете отключить сброс LD_LIBRARY_PATH.
Обратите внимание, что если ваш .bashrc или .bash_profile защищен защитником, подобным приведенному ниже, вам, возможно, придется вызывать свой сценарий вне его:
if [ "X$BASH_SOURCED" != "XYES" ]; then export BASH_SOURCED=YES fi
Такие охранники, как правило, размещаются для предотвращения многократного получения сценария за сеанс.
Редактировать: Если проверено, что утомительно, чтобы отследить место сброса переменной, и у вас есть доступ к / etc / profile или /etc/bash.bashrc, например, вы можете временно добавить «set -x» в верхней части скрипт, чтобы увидеть все команды, которые выполняются. Вывод будет довольно многословным, поэтому сначала выполните «set -x» в вашей оболочке и выполните несколько команд, чтобы вы знали, чего ожидать.