Câu trả lời:
Trong zsh, bạn có thể sử dụng setoptđể hiển thị các tùy chọn được bật và unsetoptđể hiển thị các tùy chọn không được bật:
$ setopt
autocd
histignorealldups
interactive
monitor
sharehistory
shinstdin
zle
$ unsetopt
noaliases
allexport
noalwayslastprompt
alwaystoend
noappendhistory
autocd
autocontinue
noautolist
noautomenu
autonamedirs
.....
Trong bash, bạn có thể sử dụng shopt -p.
set -ocho danh sách ĐẦY ĐỦ.
Chỉ dùng:
[[ -o extended_glob ]]
Điều đó cũng hoạt động bash, nhưng chỉ cho các tùy chọn được đặt bởi set -o, không phải cho các tùy chọn được đặt bởi shopt. zshchỉ có một bộ tùy chọn có thể được đặt bằng setopthoặc set -o.
Giống như với bash(hoặc bất kỳ vỏ POSIX nào), bạn cũng có thể thực hiện set -ohoặc set +ođể xem các cài đặt tùy chọn hiện tại.
Các zsh/parametermô-đun, mà là một phần của phân phối mặc định, cung cấp một mảng kết hợp optionscho biết mà lựa chọn đang ở trên.
if [[ $options[extended_glob] = on ]]; then …
Đối với các tùy chọn có bí danh một chữ cái (không phải là trường hợp extended_glob), bạn cũng có thể kiểm tra $-.
Lưu ý rằng hiếm khi hữu ích để kiểm tra tùy chọn nào được bật. Nếu bạn cần bật hoặc tắt một tùy chọn trong một đoạn mã, hãy đặt mã đó vào một hàm và đặt local_optionstùy chọn. Bạn có thể gọi emulatenội trang để đặt lại các tùy chọn về trạng thái mặc định.
my_function () {
setopt extended_glob local_options
}
another_function () {
emulate -L zsh
setopt extended_glob
}
setoptchỉ in các tùy chọn không được bật theo mặc định cho chế độ mô phỏng đó.