setopt
ต้องการเปิดใช้งานตัวเลือกที่เราสามารถใช้ เช่น:
setopt extended_glob
เราจะตรวจสอบได้อย่างไรว่าตัวเลือกนั้นเปิดใช้งานอยู่หรือไม่?
setopt
ต้องการเปิดใช้งานตัวเลือกที่เราสามารถใช้ เช่น:
setopt extended_glob
เราจะตรวจสอบได้อย่างไรว่าตัวเลือกนั้นเปิดใช้งานอยู่หรือไม่?
คำตอบ:
ใน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
setopt
set -o
เช่นเดียวกับbash
(หรือ POSIX เชลล์) คุณสามารถทำset -o
หรือset +o
ดูการตั้งค่าตัวเลือกปัจจุบัน
zsh/parameter
โมดูลซึ่งเป็นส่วนหนึ่งของการกระจายเริ่มต้นให้อาเรย์options
ที่บ่งชี้ว่าตัวเลือกที่อยู่ใน
if [[ $options[extended_glob] = on ]]; then …
สำหรับตัวเลือกที่มีนามแฝงตัวอักษรเดียว (ซึ่งไม่ใช่กรณีextended_glob
) คุณสามารถตรวจสอบ$-
ได้
โปรดทราบว่ามันไม่ค่อยมีประโยชน์ในการทดสอบตัวเลือกที่เปิดใช้งาน หากคุณต้องการเปิดใช้งานหรือปิดการใช้งานตัวเลือกในชิ้นส่วนของรหัสใส่รหัสนั้นในฟังก์ชั่นและตั้งค่าlocal_options
ตัวเลือก คุณสามารถเรียกemulate
builtin เพื่อรีเซ็ตตัวเลือกให้เป็นสถานะเริ่มต้น
my_function () {
setopt extended_glob local_options
}
another_function () {
emulate -L zsh
setopt extended_glob
}
setopt
พิมพ์เฉพาะตัวเลือกที่ไม่ได้เปิดใช้งานตามค่าเริ่มต้นสำหรับโหมดการจำลองนั้น