Odpowiedzi:
Po prostu biegnij:
$ shopt extglob
Zwróci bieżący status:
$ shopt extglob
extglob on
$ shopt -u extglob
$ shopt extglob
extglob off
Aby wyświetlić wszystkie opcje, wystarczy uruchomić:
$ shopt
Użyj shopt -q :
shopt -q extglob && echo enable || echo disable
-q
opcja powoduje shopt
odrzucenie wyjścia i zwraca status, aby wskazać, że opcje zostały ustawione lub wyłączone.
Zauważ, że shopt
zgłasza tylko opcje, które mogą pojawić się w BASHOPTS
zmiennej, opcje te nie są prawidłowe dla set
wbudowanego polecenia.
Aby sprawdzić opcje, które są ważne set
lub mogą się pojawiać SHELLOPTS
, użyj shopt -qo
:
$ bash --posix -c 'shopt -qo posix && echo enable || echo disable'
enable
shopt extglob
?
shopt extglob
twoje podejście napisze na standardowe wyjście. Czy myślisz o shopt -q extglob && shopt -u extglob || shopt -s extglob
?
shopt -q extglob && : Code when enable || : Code when disable
.
Istnieją dwie listy opcji w bash. Jeden za shopt
i jeden za set
.
Opcja extglob
należy do shopt
listy.
Jego wartość może być wydrukowane za pomocą jednej shopt extglob
lub shopt -p extglob
.
Opcja taka nounset
należy do set
listy.
Jego wartość można wydrukować za pomocą shopt -op nounset
lub shopt -o nounset
.
Aby wydrukować określoną opcję (bez jej zmiany) dla shopt, użyj shopt -p name
:
$ shopt -p xpg_echo
shopt -u xpg_echo
I dla set
, użyj: shopt -po name
(tak, możesz użyć shopt -op
do set
listy).
$ shopt -po xtrace
set +o xtrace
Aby wyświetlić wszystkie opcje z shopt, użyj shopt
(lub wielokrotnego użytku shopt -p
).
Również shopt -s
lub shopt -u
może być użyty.
Sposób wyświetlenia wszystkich opcji set
to set -o
(związany set +o
:).
Lub: shopt -o
jest równoważne set -o
i shopt -op
ma set +o
.
Od LESS=+/'^ *shopt \[' man bash
:
Bez opcji lub z opcją -p wyświetlana jest lista wszystkich ustawialnych opcji. Jeśli użyto opcji -s lub -u bez argumentów nazwy optycznej, wyświetlanie jest ograniczone do tych opcji, które są odpowiednio ustawione lub wyłączone.
Od LESS=+/'^ *set \[' man bash
:
Jeśli podano -o bez nazwy-opcji, drukowane są wartości bieżących opcji. Jeśli podano + o bez nazwy-opcji, na standardowym wyjściu wyświetlana jest seria poleceń set do odtworzenia bieżących ustawień opcji.
$ 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
I
$ 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
Warto wspomnieć o tym, shopt -op
które faktycznie wyświetla set
opcje:
$ 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
shopt -s extglob
chcesz to włączyć, po prostu uruchom lub, jeśli chcesz to wyłączyć, uruchomshopt -u extglob
. Nie ma znaczenia, czy było początkowo, czy nie.