Итак, страницы руководства bash объясняют, что такое логин и интерактивные оболочки:
Оболочка входа - это та, чей первый символ аргумента ноль - -, или тот, который начинается с опции --login.
Интерактивная оболочка запускается без аргументов без опций и без опции -c, стандартные входные данные и ошибки которых связаны с терминалами (как определено isatty (3)), или запускаются с опцией -i. PS1 установлен, а $ - включает i, если bash интерактивен, что позволяет сценарию оболочки или файлу запуска проверить это состояние.
Я думаю, это означает, что у нас может быть 4 различных типа снарядов:
- Интерактивные логины,
- Неинтерактивные логины,
- Интерактивные оболочки без логина,
- Неинтерактивные оболочки без логина
Но почему у нас есть интерактивные / неинтерактивные оболочки и вход в систему / не вход в систему? Почему разнообразие? Что бы мы потеряли, если бы у нас был только один тип оболочки?
Также при попытке определить, нахожусь ли я в оболочке входа в систему, запустив echo $-
, он выводит:
himBH
Некоторые из этих флагов объясняются здесь, но h
, H
и m
не объясняются. Есть ли место, которое описывает все эти флаги?