Відповіді:
Просто запустіть:
$ shopt extglob
Він поверне поточний статус:
$ shopt extglob
extglob on
$ shopt -u extglob
$ shopt extglob
extglob off
Щоб показати всі параметри, просто запустіть:
$ shopt
Використовувати shopt -q :
shopt -q extglob && echo enable || echo disable
-qопція зробити shoptвідкинути вихід і повернути стан, щоб вказати, що параметри встановлені або зняті.
Зауважте, що shoptлише параметри звітів, які можуть відображатися в BASHOPTSзмінній, ці параметри недійсні для setвбудованої команди.
Щоб перевірити параметри, які є дійсними setабо можуть з'являтися в них SHELLOPTS, використовуйте shopt -qo:
$ bash --posix -c 'shopt -qo posix && echo enable || echo disable'
enable
shopt extglob?
shopt extglobваш, і ваш підхід буде писати в stdout. Ви думаєте shopt -q extglob && shopt -u extglob || shopt -s extglob?
shopt -q extglob && : Code when enable || : Code when disable.
У bash є два списки варіантів. Один за shoptі один для set.
Опція extglobналежить до shoptсписку.
Його значення може бути надруковано за допомогою shopt extglobабо shopt -p extglob.
Такий варіант, як nounsetналежить до setсписку.
Його значення може бути надруковано за допомогою shopt -op nounsetабо shopt -o nounset.
Щоб надрукувати конкретну опцію (не змінюючи її) для знімків, використовуйте shopt -p name:
$ shopt -p xpg_echo
shopt -u xpg_echo
І для setвикористання: shopt -po name(так, ви можете використовувати shopt -opдля setсписку).
$ shopt -po xtrace
set +o xtrace
Щоб перелічити всі параметри з магазину, використовуйте shopt(або для багаторазового використання shopt -p).
Крім того, shopt -sчи shopt -uможуть бути використані.
Спосіб переліку всіх параметрів setє за допомогою set -o(related set +o:).
Або: shopt -oеквівалентно set -oі shopt -opє set +o.
Від LESS=+/'^ *shopt \[' man bash:
Без параметрів або з опцією -p відображається перелік усіх параметрів, які можна встановити, Якщо або -s або -u використовується без аргументів optname, відображення обмежується тими параметрами, які встановлені або вимкнено відповідно.
Від LESS=+/'^ *set \[' man bash:
Якщо -o постачається без назви опцій, друкуються значення поточних параметрів. Якщо + o постачається без назви опцій, на стандартному виході відображається серія встановлених команд для відтворення поточних параметрів параметрів.
$ 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
І
$ 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
Варто згадати, shopt -opякі фактично перелічені setваріанти:
$ 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або, якщо ви хочете, вимкнітьshopt -u extglob. Це не має ніякої різниці в тому, було воно спочатку чи ні.