В сценарии оболочки я пытаюсь открыть новую оболочку tcsh и загрузить некоторый набор предопределенных псевдонимов и переменных env, которые я не хочу иметь в cshrc по умолчанию. Я не могу иметь его в своем домашнем каталоге, так как этот сценарий будет использоваться несколькими пользователями. По каким путям tcsh будет искать файл cshrc при создании нового xterm или оболочки? Это настраивается через некоторую переменную env?
1 ответ
Оболочка входа в систему начинается с выполнения команд из системных файлов /etc/csh.cshrc и /etc/csh.login. Затем он выполняет команды из файлов в домашнем каталоге пользователя: сначала ~ /.tcshrc (+) или, если ~ /.tcshrc не найден, ~ /.cshrc, затем ~ /.history (или значение переменной оболочки histfile ), затем ~ /.login и, наконец, ~ /.cshdirs (или значение переменной оболочки dirsfile) (+). Оболочка может читать /etc/csh.login до, а не после /etc/csh.cshrc, и ~ /.login до, а не после ~ /.tcshrc или ~ /.cshrc и ~ /.history, если это скомпилировано; см. переменную оболочки версии. (+)
Нет аргумента переменной среды, чтобы изменить это, кроме -f
чтобы предотвратить загрузку файла запуска.
Вы можете использовать source
команду для загрузки файла из tcsh
, хотя:
source /etc/my-special-settings.tcsh
Вы также можете сделать что-то подобное в вашем пользователе ~/.tcshrc
:
if ( $?SPECIAL_SETTINGS ) then
source /etc/my-special-settings.tcsh
else
source ~/.tcsh/tcshrc
endif