como entender a saída de “echo $ -”?

7

Como entender a saída de echo $- ? Parece algum tipo de bandeira. Eu não consigo entender por googling.

    
por dcnh35 12.10.2016 / 09:03

2 respostas

11

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 or setopt 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 ).

    
por 12.10.2016 / 09:12
2

Na página de manual do bash:

set [+abefhkmnptuvxBCEHPT] [+o option-name] [arg ...]

Without options, the name and value of each shell variable are displayed in a format that can be reused as input for setting or resetting the currently-set variables.

...

The options are off by default unless otherwise noted. Using + rather than - causes these options to be turned off. The options can also be specified as arguments to an invocation of the shell. The current set of options may be found in $-. The return status is always true unless an invalid option is encountered.

    
por 12.10.2016 / 09:14

Tags