回答:
では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つのみです。setopt
set -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
そのエミュレーションモードでデフォルトで有効になっていないオプションのみを印刷することに注意してください。