Portanto, as páginas de manual do bash explicam o que são logins e shells interativos:
Um shell de login é aquele cujo primeiro caractere do argumento zero é um - ou um iniciado com a opção --login.
Um shell interativo é aquele iniciado sem argumentos de não opção e sem a opção -c cuja entrada e erro padrão estão conectados aos terminais (conforme determinado por isatty (3)) ou um iniciado com a opção -i. O PS1 está definido e $ - inclui i se o bash for interativo, permitindo que um script de shell ou um arquivo de inicialização teste esse estado.
Eu acho que isso significa que podemos ter 4 tipos diferentes de conchas:
- Escudos de login interativos,
- Blocos de login não interativos,
- Blocos interativos sem login,
- Blocos não interativos de não logon
Mas por que temos shells interativos / não interativos e de login / sem login em primeiro lugar? Por que a variedade? O que perderíamos se tivéssemos apenas um tipo de concha?
Além disso, ao tentar determinar se estou em um shell de logon executando echo $-
, ele gera:
himBH
Algumas destas bandeiras são explicados aqui , mas h
, H
e m
não são explicadas. Existe um lugar que descreva todas essas bandeiras?
fonte