Я нахожусь на рабочей станции Linux в сети со "старым" дистрибутивом. Кроме того, оболочка входа в систему обязательна для CSH. Я уже спрашивал администраторов, можно ли переключиться на другое (я хотел бы иметь bash), но это было не по пути ...

Поэтому я запускаю bash из командной строки как интерактивную оболочку без регистрации (фактически я использую gnome и gnome-терминал с профилем, который запускает /bin /bash -i в качестве команды). Много, если не все мои скрипты используют bash, поэтому я запускаю их из него, вызывая bash со скриптом. Это грязно, но это работает.

У меня есть .cshrc с переменными среды, псевдонимами и параметрами для csh, определенными в файлах .login и .cshrc в моем $ HOME. У меня также есть файл .bashrc/.bash_profile(который перенаправляет на .bashrc, если это интерактивная оболочка)/. Bash_aliases с некоторыми другими переменными и некоторыми такими же. Когда я запускаю оболочку bash, я наследую переменные окружения, определенные в моем файле .login. Я хотел бы игнорировать все, что настроено в этом, когда я запускаю bash.

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

Есть ли у вас какие-либо идеи?

Спасибо

2 ответа2

2

Вместо ручного сброса переменных, которые вы не хотите наследовать, запустите bash с помощью команды env :

env -i bash

Флаг -i заставляет bash игнорировать его унаследованное окружение.

0

Вы хотите запустить bash как неинтерактивную оболочку внутри CSH с переменными bash, определенными в .bash_profile, верно?

Вы могли бы дать стрелять:

./bash --login
source ./bash --login

но я не могу это проверить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .