Jawaban:
Di zsh, Anda dapat menggunakan setoptuntuk menampilkan opsi yang diaktifkan dan unsetoptuntuk menunjukkan yang tidak diaktifkan:
$ setopt
autocd
histignorealldups
interactive
monitor
sharehistory
shinstdin
zle
$ unsetopt
noaliases
allexport
noalwayslastprompt
alwaystoend
noappendhistory
autocd
autocontinue
noautolist
noautomenu
autonamedirs
.....
Di bash, Anda bisa menggunakan shopt -p.
set -odaftar FULL.
Cukup gunakan:
[[ -o extended_glob ]]
Itu juga berfungsi bash, tetapi hanya untuk opsi yang ditetapkan oleh set -o, bukan yang ditetapkan oleh shopt. zshhanya memiliki satu set opsi yang dapat diatur dengan salah satu setoptatau set -o.
Sama seperti dengan bash(atau shell POSIX), Anda juga dapat melakukan set -oatau set +omelihat pengaturan opsi saat ini.
The zsh/parametermodul, yang merupakan bagian dari distribusi default, menyediakan array asosiatif optionsyang menunjukkan opsi yang di.
if [[ $options[extended_glob] = on ]]; then …
Untuk opsi yang memiliki alias satu huruf (yang bukan merupakan kasus extended_glob), Anda juga dapat memeriksa $-.
Perhatikan bahwa jarang berguna untuk menguji opsi mana yang diaktifkan. Jika Anda perlu mengaktifkan atau menonaktifkan opsi dalam sepotong kode, masukkan kode itu ke dalam fungsi dan atur local_optionsopsi. Anda dapat memanggil emulatebuiltin untuk mengatur ulang opsi ke kondisi default.
my_function () {
setopt extended_glob local_options
}
another_function () {
emulate -L zsh
setopt extended_glob
}
setopthanya mencetak opsi yang tidak diaktifkan secara default untuk mode emulasi itu.