Игнорировать переменные из другой оболочки
Я нахожусь на рабочей станции 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 ответа
Вместо того, чтобы вручную сбрасывать переменные, которые вы не хотите наследовать, запустите bash, используя env
команда:
env -i bash
-i
флаг причины bash
игнорировать его унаследованную среду.
Вы хотите запустить bash как неинтерактивную оболочку внутри CSH с переменными bash, определенными в.bash_profile, верно?
Вы могли бы дать стрелять:
./bash --login
source ./bash --login
но я не могу это проверить.