Como verificar se um atributo do bash shell foi configurado? [duplicado]

2

set -o posix definirá o atributo POSIX do shell bash.

Como podemos verificar se um atributo foi configurado ou não?

    
por Tim 14.03.2016 / 22:55

2 respostas

4

Existem duas listas de opções no bash. Um para shopt e um para set .

Marque uma opção.

Para imprimir uma opção específica (sem alterá-la) para shopt, use shopt -p name :

$ shopt -p xpg_echo
shopt -u xpg_echo

E para set , use: shopt -po name (sim, você pode usar shopt -op para set list).

$  shopt -po xtrace
set +o xtrace

Opções de lista.

Para listar todas as opções de shopt, use shopt (ou reutilizável shopt -p ).
Também shopt -s ou shopt -u poderia ser usado.

A maneira de listar todas as opções para set é com set -o (related: set +o ).
Ou: shopt -o é equivalente a set -o e shopt -op é a set +o .

Manual

De LESS=+/'^ *shopt \[' man bash :

With no options, or with the -p option, a list of all settable options is displayed, If either -s or -u is used with no optname arguments, the display is limited to those options which are set or unset, respectively.

De LESS=+/'^ *set \[' man bash :

If -o is supplied with no option-name, the values of the current options are printed. If +o is supplied with no option-name, a series of set commands to recreate the current option settings is displayed on the standard output.

Exemplos

$ set -o
allexport       off
braceexpand     on
emacs           on
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
ignoreeof       off
interactive-comments    on
keyword         off
monitor         on
noclobber       off
noexec          off
noglob          off
nolog           off
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           off
privileged      off
verbose         off
vi              off
xtrace          off

e

$  shopt -sp
shopt -s checkwinsize
shopt -s cmdhist
shopt -s expand_aliases
shopt -s extglob
shopt -s extquote
shopt -s force_fignore
shopt -s histappend
shopt -s histverify
shopt -s interactive_comments
shopt -s progcomp
shopt -s promptvars
shopt -s sourcepath

Vale a pena mencionar sobre shopt -op , que lista set de opções:

$ shopt -op
set +o allexport
set -o braceexpand
set -o emacs
set +o errexit
set +o errtrace
set +o functrace
set -o hashall
set -o histexpand
set -o history
set +o ignoreeof
set -o interactive-comments
set +o keyword
set -o monitor
set +o noclobber
set +o noexec
set +o noglob
set +o nolog
set +o notify
set +o nounset
set +o onecmd
set +o physical
set +o pipefail
set +o posix
set +o privileged
set +o verbose
set +o vi
set +o xtrace
    
por 15.03.2016 / 00:03
2

Use algo como

if shopt -qo posix ; then

Para cancelar a opção, use

set +o posix

Veja man bash , help set e help shopt para mais detalhes.

    
por 14.03.2016 / 23:01

Tags