У меня есть файл ~ / .cshrc, который получает другой файл, который должен быть источником дополнительного файла, но не является

878
beowulfey

Я недавно унаследовал административную роль в моей лаборатории, и я все еще довольно новичок в этом ... так что, надеюсь, этот вопрос имеет смысл. Наша система настроена таким образом, что на одном сервере размещаются каталоги данных / пользователей, на другом - программное обеспечение и приложения, а три системы используются в качестве рабочих компьютеров, на которых установлены эти другие серверы. Когда создается новый пользователь, создается файл ~ / .cshrc, который является источником родительского файла .cshrc на сервере программного обеспечения. Этот родительский файл содержит все параметры пути, переменные и т. Д., Необходимые для доступа к различным программам, которые мы устанавливаем на подключенный сервер программного обеспечения. Это полный беспорядок ... ну да ладно.

Одна из программ, которую мы используем, должна получить другой файл перед запуском, чтобы правильно настроить среду и загрузить правильные каталоги. По какой-то причине этот экземпляр источника больше не происходит при открытии окна терминала. Вот что я нашел:

  • Я пытаюсь запустить программу из командной строки, и она распознает команду из родительского .cshrc, пытается загрузить, но ищет в каталоге / usr / local на компьютере, а не в каталоге на сервере программного обеспечения (я считаю, что это программное обеспечение действие по умолчанию).

  • Если я запускаю source ~ / .cshrc в терминале, ничего не меняется. Однако, если я получаю исходный файл .cshrc из терминала, а затем пытаюсь загрузить программу, это не вызывает проблем.

  • Я знаю, что ~ / .cshrc правильно получает исходный файл .cshrc, потому что я поместил тестовое эхо в этот файл, и я могу видеть это эхо, когда открываю окно терминала. Похоже, что исходная команда в исходном родительском файле не выполняется.

Имеет ли это смысл? Слишком много слоев происходит или что-то еще? Я понятия не имею, почему это происходит. Вот код в родительском файле .cshrc, который не завершается должным образом:

set hname = `hostname`  ############## #### #### ccp4i #### ############## switch ($hname) case phase15.XXX.edu: source /usr/local_programs/32-bit/ccp4/6.3.01/ccp4-6.3.0/bin/ccp4.setup-csh source /usr/local_programs/32-bit/ccp4/6.3.01/ccp4-6.3.0/setup-scripts/ccp4.setup-csh echo "ccp4i sourced" #(THIS SHOWS UP) breaksw default: echo "CCP4 env setting?" breaksw endsw ############## 

Это происходит потому, что разные компьютеры должны загружать разные версии программного обеспечения. Заранее спасибо.

0

1 ответ на вопрос

0
beowulfey

Просто для целей записи я разобрался с проблемой; вид очевиден в ретроспективе. Пользовательский файл ~. / Cshrc содержал отдельную исходную команду, которая все испортила после поиска родительского файла. В конце концов, я думаю, что это урок, чтобы всегда все внимательно читать ...

Похожие вопросы