Jadi halaman bash man menjelaskan apa itu login dan shell interaktif:
Shell login adalah karakter yang argumen pertama nol adalah a -, atau yang dimulai dengan opsi --login.
Shell interaktif adalah yang dimulai tanpa argumen non-opsi dan tanpa opsi -c yang input dan kesalahan standar keduanya terhubung ke terminal (sebagaimana ditentukan oleh isatty (3)), atau yang dimulai dengan opsi -i. PS1 diatur dan $ - termasuk saya jika bash bersifat interaktif, memungkinkan skrip shell atau file startup untuk menguji keadaan ini.
Saya pikir ini berarti kita dapat memiliki 4 jenis shell:
- Kerang login interaktif,
- Cangkang masuk non-interaktif,
- Kerang non-login interaktif,
- Kerang non-interaktif non-interaktif
Tapi mengapa kita memiliki shell interaktif / non-interaktif dan login / non-login? Mengapa varietasnya? Apa yang akan kita kehilangan jika kita hanya memiliki satu jenis shell?
Juga ketika mencoba menentukan apakah saya di shell login dengan menjalankan echo $-
, itu output:
himBH
Beberapa bendera ini dijelaskan di sini , tapi h
, H
, dan m
tidak dijelaskan. Apakah ada tempat yang menggambarkan semua bendera ini?
sumber