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