Die bash-Manpages erklären also, was Login und interaktive Shells sind:
Eine Login-Shell ist eine Shell, deren erstes Zeichen des Arguments Null ein - ist, oder eine Shell, die mit der Option --login gestartet wurde.
Eine interaktive Shell wird ohne Nichtoptionsargumente und ohne die Option -c gestartet, deren Standardeingabe und Fehler beide mit Terminals verbunden sind (wie durch isatty (3) bestimmt), oder mit der Option -i gestartet. PS1 ist gesetzt und $ - enthält i, wenn bash interaktiv ist, sodass ein Shell-Skript oder eine Startdatei diesen Status testen kann.
Ich denke, dies bedeutet, dass wir 4 verschiedene Arten von Muscheln haben können:
- Interaktive Login-Shells,
- Nicht interaktive Login-Shells,
- Interaktive Shells ohne Anmeldung
- Nicht interaktive Shells ohne Anmeldung
Aber warum haben wir überhaupt interaktive / nicht interaktive und Login- / Nicht-Login-Shells? Warum die Sorte? Was würden wir verlieren, wenn wir nur eine Art von Hülle hätten?
Auch beim Versuch, durch Ausführen festzustellen, ob ich mich in einer Anmeldeshell befinde echo $-
, wird Folgendes ausgegeben:
himBH
Einige dieser Flags erklärt hier , aber h
, H
und m
werden nicht erläutert. Gibt es einen Ort, der all diese Flaggen beschreibt?
quelle