Como verificar as opções do shell?

1

Eu quero verificar quais opções estão ativadas para o meu shell atual. Por exemplo, quero saber se fui chamado com -x ou -e ou qualquer outra opção.

Eu source um script de shell com a linha shebang #!/bin/bash -x e, mais tarde, tentar desativar 'x' com set +x no final do script. Agora quero verificar se minha linha set +x foi bem-sucedida.

Tentativa de solução

Descobri printenv e set como formas de inspecionar algumas informações sobre o shell atual, mas nenhuma delas parece conter uma variável que armazena x e ou algo semelhante.

    
por tarabyte 02.02.2016 / 20:07

1 resposta

1

Está na variável $- .

Veja a documentação para o comando set - role para baixo até o final e você verá "O conjunto atual de opções pode ser encontrado em $- ".

Uma demonstração rápida

$ bash
$ echo $-
himBH
$ set -f; set +H
$ echo $-
fhimB
$ [[ $- == *i* ]] && echo This is an interactive shell
This is an interactive shell
    
por 02.02.2016 / 21:01

Tags