В чем разница между «логином» и «интерактивной» оболочкой bash? Я цитировал Википедию ниже, но кто-нибудь может дать лучший ответ?
РЕДАКТИРОВАТЬ: Это вики сообщества, поэтому, возможно, вместо того, чтобы голосовать за закрытие, вы можете привести примеры ситуаций, требующих какого типа $ SHELL
Скрипты запуска
Когда Bash запускается, он выполняет команды в различных сценариях.
Когда Bash вызывается как интерактивная оболочка входа в систему, он сначала читает и выполняет команды из файла / etc / profile, если этот файл существует. После прочтения этого файла он ищет ~ / .bash_profile, ~ / .bash_login и ~ / .profile в указанном порядке, а также читает и выполняет команды из первой, которая существует и доступна для чтения.
Когда оболочка входа в систему закрывается, Bash читает и выполняет команды из файла ~ / .bash_logout, если он существует.
Когда запускается интерактивная оболочка, которая не является оболочкой входа в систему, Bash читает и выполняет команды из ~ / .bashrc, если этот файл существует. Это может быть запрещено с помощью параметра --norc. Опция --rcfile file заставит Bash читать и выполнять команды из файла вместо ~ / .bashrc.
Ответы:
В файлах профиля вашей оболочки входа вы можете настроить некоторые вещи, которые вы будете использовать во время сеанса, и которые нужно сделать только один раз. Некоторые идеи:
В файлах оболочки без входа в систему (
.bashrc
) вы должны настроить свою оболочку:.bash_profile
Обычно вы бы включили
.bashrc
из.bash_profile
следующего. Тогда оболочка входа получает все ваши настройки, и.bash_profile
файл не должен дублировать вещи, которые уже есть.bashrc
.источник