回答:
ではzsh、setopt有効なオプションを表示したり、有効にunsetoptなっていないオプションを表示したりできます。
$ setopt
autocd
histignorealldups
interactive
monitor
sharehistory
shinstdin
zle
$ unsetopt
noaliases
allexport
noalwayslastprompt
alwaystoend
noappendhistory
autocd
autocontinue
noautolist
noautomenu
autonamedirs
.....
ではbash、を使用できますshopt -p。
set -oリストに使用する必要があります。
ただ使用する:
[[ -o extended_glob ]]
これもで動作しbashますが、で設定されたオプションに対してのみ有効で、で設定されたオプションset -oでは機能しませんshopt。またはzshで設定できるオプションのセットは1つのみです。setoptset -o
ちょうどと同じようにbash(または任意のPOSIXシェル)、あなたも行うことができますset -oまたはset +o現在のオプション設定を参照してください。
zsh/parameterデフォルトの配布の一部であるモジュールは、連想配列提供するoptionsオプションがオンであるかを示します。
if [[ $options[extended_glob] = on ]]; then …
1文字のエイリアスを持つオプション(これはの場合ではありませんextended_glob)についても確認できます$-。
どのオプションが有効になっているかをテストすることはめったに役に立ちません。コードの一部でオプションを有効または無効にする必要がある場合は、そのコードを関数に入れてlocal_optionsオプションを設定します。emulateビルトインを呼び出して、オプションをデフォルト状態にリセットできます。
my_function () {
setopt extended_glob local_options
}
another_function () {
emulate -L zsh
setopt extended_glob
}
setoptそのエミュレーションモードでデフォルトで有効になっていないオプションのみを印刷することに注意してください。