Antworten:
Lauf einfach:
$ shopt extglob
Es wird der aktuelle Status zurückgegeben:
$ shopt extglob
extglob on
$ shopt -u extglob
$ shopt extglob
extglob off
Um alle Optionen anzuzeigen, führen Sie einfach Folgendes aus:
$ shopt
Verwenden Sie shopt -q :
shopt -q extglob && echo enable || echo disable
-q
Mit dieser Option können Sie die shopt
Ausgabe verwerfen und den Status zurückgeben, um anzuzeigen, dass die Optionen aktiviert oder deaktiviert sind.
Beachten Sie, dass shopt
nur Optionen gemeldet BASHOPTS
werden, die in Variablen set
angezeigt werden können. Diese Optionen sind für den integrierten Befehl nicht gültig .
Verwenden Sie Folgendes, um nach Optionen zu suchen, die für Folgendes gültig set
sind oder darin angezeigt werden können :SHELLOPTS
shopt -qo
$ bash --posix -c 'shopt -qo posix && echo enable || echo disable'
enable
shopt extglob
?
shopt extglob
und Ihr Ansatz schreiben an stdout. Denken Sie an shopt -q extglob && shopt -u extglob || shopt -s extglob
?
shopt -q extglob && : Code when enable || : Code when disable
.
Es gibt zwei Listen mit Optionen in Bash. Eins für shopt
und eins für set
.
Die Option extglob
gehört zur shopt
Liste.
Sein Wert kann entweder mit shopt extglob
oder gedruckt werden shopt -p extglob
.
Eine Option wie nounset
gehört zur set
Liste.
Sein Wert kann mit shopt -op nounset
oder gedruckt werden shopt -o nounset
.
Verwenden Sie Folgendes, um eine bestimmte Option (ohne sie zu ändern) für shopt zu drucken shopt -p name
:
$ shopt -p xpg_echo
shopt -u xpg_echo
Und für set
, verwenden Sie: shopt -po name
(ja, Sie können shopt -op
für set
Liste verwenden).
$ shopt -po xtrace
set +o xtrace
Verwenden Sie shopt
(oder wiederverwendbar shopt -p
) , um alle Optionen von shopt aufzulisten .
Auch shopt -s
oder shopt -u
könnte verwendet werden.
Die Möglichkeit, alle Optionen aufzulisten, set
ist mit set -o
(verwandt :) set +o
.
Oder: shopt -o
ist gleichbedeutend mit set -o
und shopt -op
ist zu set +o
.
Von LESS=+/'^ *shopt \[' man bash
:
Ohne Optionen oder mit der Option -p wird eine Liste aller einstellbaren Optionen angezeigt. Wenn entweder -s oder -u ohne optname-Argumente verwendet wird, ist die Anzeige auf die Optionen beschränkt, die festgelegt bzw. nicht festgelegt sind.
Von LESS=+/'^ *set \[' man bash
:
Wenn -o ohne Optionsnamen angegeben wird, werden die Werte der aktuellen Optionen gedruckt. Wenn + o ohne Optionsnamen angegeben wird, wird in der Standardausgabe eine Reihe von Set-Befehlen zum Wiederherstellen der aktuellen Optionseinstellungen angezeigt.
$ 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
Und
$ 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
Es ist erwähnenswert, shopt -op
welche set
Optionen tatsächlich aufgelistet sind :
$ 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
oder, wenn Sie es deaktivieren möchten, führen Sie es ausshopt -u extglob
. Es macht überhaupt keinen Unterschied, ob es ursprünglich eingeschaltet war oder nicht.