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 -o
cho 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
. zsh
chỉ có một bộ tùy chọn có thể được đặt bằng setopt
hoặ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 -o
hoặc set +o
để xem các cài đặt tùy chọn hiện tại.
Các zsh/parameter
mô-đ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 options
cho 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_options
tùy chọn. Bạn có thể gọi emulate
nộ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
}
setopt
chỉ in các tùy chọn không được bật theo mặc định cho chế độ mô phỏng đó.