Quindi le pagine man di bash spiegano quali login e shell interattive sono:
Una shell di login è quella il cui primo carattere dell'argomento zero è un -, oppure uno è iniziato con l'opzione --login.
Una shell interattiva è una avviata senza argomenti non opzionali e senza l'opzione -c i cui input ed errori standard sono entrambi collegati ai terminali (come determinato da isatty (3)), oppure uno avviato con l'opzione -i. PS1 è impostato e $ - include i se bash è interattivo, consentendo a uno script di shell o un file di avvio di testare questo stato.
Penso che questo significhi che possiamo avere 4 diversi tipi di shell:
- Shell di accesso interattive,
- Shell di login non interattive,
- Shell interattive senza accesso,
- Shell non interattive non di accesso
Ma perché abbiamo in primo luogo shell interattive / non interattive e login / non login? Perché la varietà? Cosa perderemmo se avessimo un solo tipo di shell?
Inoltre, quando provo a determinare se sono in una shell di login eseguendo echo $-, genera:
himBH
Alcune di queste bandiere sono spiegati qui , ma h, He mnon vengono spiegate. C'è un posto che descrive tutte queste bandiere?