Normalmente, não, o terminal não passa nenhuma opção para bash . O bash , no entanto, assume um conjunto de opções padrão dependendo de como ele foi chamado. De man bash , seção INVOCATION :
An interactive shell is one started without non-option arguments and
without the -c option whose standard input and error are both connected
to terminals (as determined by isatty(3)), or one started with the -i
option. PS1 is set and $- includes i if bash is interactive, allowing
a shell script or a startup file to test this state.
Um shell interativo ativa ainda outras opções.
Além disso, alguns padrões se aplicam com base no nome da chamada ( sh vs bash ). Lendo em (seção sobre set ):
-h Remember the location of commands as they are looked up
for execution. This is enabled by default.
-m Monitor mode. Job control is enabled. This option is
on by default for interactive shells on systems that
support it (see JOB CONTROL above)
-B The shell performs brace expansion (see Brace Expansion
above). This is on by default.
-H Enable ! style history substitution. This option is on
by default when the shell is interactive.
Combinado, basta invocar bash em um terminal para ativar essas opções.
Você pode confirmar isso verificando o valor da variável $- special:
$ echo $-
himBH
Uma opção adicional que talvez seja definida é se o seu terminal estiver configurado para iniciar os shells de login. Nesse caso, -l é explicitamente passado pelo terminal como uma opção.