Entonces, las páginas de manual de bash explican qué son los login y shells interactivos:
Un shell de inicio de sesión es aquel cuyo primer carácter del argumento cero es un -, o uno que comenzó con la opción --login.
Un shell interactivo es uno que se inicia sin argumentos sin opciones y sin la opción -c, cuya entrada estándar y error están conectados a los terminales (según lo determinado por isatty (3)), o uno que comienza con la opción -i. PS1 está configurado y $: incluye i si bash es interactivo, lo que permite que un script de shell o un archivo de inicio pruebe este estado.
Creo que esto significa que podemos tener 4 tipos diferentes de conchas:
- Conchas de inicio de sesión interactivas,
- Shells de inicio de sesión no interactivos,
- Shells interactivos sin inicio de sesión,
- Shells no interactivos sin inicio de sesión
Pero, ¿por qué tenemos shells interactivos / no interactivos y de inicio de sesión / no inicio de sesión en primer lugar? ¿Por qué la variedad? ¿Qué perderíamos si solo tuviéramos un tipo de caparazón?
Además, cuando intento determinar si estoy en un shell de inicio de sesión ejecutando echo $-
, genera:
himBH
Algunos de estos indicadores se explican aquí , pero h
, H
y m
no se explican. ¿Hay un lugar que describa todas estas banderas?