Jawaban:
Di zsh
, Anda dapat menggunakan setopt
untuk menampilkan opsi yang diaktifkan dan unsetopt
untuk 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 -o
daftar FULL.
Cukup gunakan:
[[ -o extended_glob ]]
Itu juga berfungsi bash
, tetapi hanya untuk opsi yang ditetapkan oleh set -o
, bukan yang ditetapkan oleh shopt
. zsh
hanya memiliki satu set opsi yang dapat diatur dengan salah satu setopt
atau set -o
.
Sama seperti dengan bash
(atau shell POSIX), Anda juga dapat melakukan set -o
atau set +o
melihat pengaturan opsi saat ini.
The zsh/parameter
modul, yang merupakan bagian dari distribusi default, menyediakan array asosiatif options
yang 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_options
opsi. Anda dapat memanggil emulate
builtin untuk mengatur ulang opsi ke kondisi default.
my_function () {
setopt extended_glob local_options
}
another_function () {
emulate -L zsh
setopt extended_glob
}
setopt
hanya mencetak opsi yang tidak diaktifkan secara default untuk mode emulasi itu.