Eles representam os valores dos flags do shell; isso é definido pelo POSIX :
-
(Hyphen.) Expands to the current option flags (the single-letter option names concatenated into a string) as specified on invocation, by the
set
special built-in command, or implicitly by the shell.
O manual do Zsh menciona brevemente:
- <S> Flags supplied to the shell on invocation or by the
set
orsetopt
commands.
como o manual de Bash na descrição de set
:
The current set of options may be found in
$-
.
Para entender a saída de echo $-
, você precisa procurar as opções no manual do seu shell. Por exemplo, no Bash, echo $-
outputs himBHs
para mim, o que significa que as opções -h
, -m
, -B
e -H
estão ativadas (consulte help set
para obter detalhes), que o shell é interativo ( -i
) e leitura da entrada padrão ( -s
).