zsh: यदि कोई विकल्प सक्षम है तो कैसे जांचें


39

एक विकल्प को सक्षम करने के लिए, हम उपयोग कर सकते हैं setopt। उदाहरण के लिए:

setopt extended_glob

यदि कोई विकल्प वर्तमान में सक्षम है तो हम कैसे जांच सकते हैं?

जवाबों:


41

में 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


यह ध्यान दिया जाना चाहिए कि setoptकेवल उस अनुकरण मोड के लिए डिफ़ॉल्ट रूप से सक्षम नहीं किए गए विकल्पों को प्रिंट करता है।
llua

6
आपको set -oपूर्ण सूची के लिए उपयोग करना चाहिए ।
कुटसन कपलान

16

महज प्रयोग करें:

[[ -o extended_glob ]]

वह भी काम करता है bash, लेकिन केवल उन विकल्पों के लिए set -o, जिनके द्वारा सेट नहीं किया गया है shoptzshविकल्पों में से केवल एक सेट है जो setoptया तो के साथ सेट किया जा सकता है set -o

जैसे bash(या किसी POSIX शेल) के साथ, आप कर सकते हैं set -oया set +oवर्तमान विकल्प सेटिंग्स को देखने के लिए भी ।


11

zsh/parameterमॉड्यूल, जो डिफ़ॉल्ट वितरण का हिस्सा है, एक साहचर्य सरणी प्रदान करता है optionsइंगित करता है कि जो विकल्प पर हैं।

if [[ $options[extended_glob] = on ]]; then 

उन विकल्पों के लिए जिनके पास एकल-अक्षर उर्फ ​​(जो मामला नहीं है extended_glob), आप भी देख सकते हैं $-

ध्यान दें कि यह परीक्षण करने के लिए शायद ही उपयोगी है कि कौन से विकल्प सक्षम हैं। यदि आपको कोड के एक टुकड़े में एक विकल्प को सक्षम या अक्षम करने की आवश्यकता है, तो उस कोड को किसी फ़ंक्शन में रखें और local_optionsविकल्प सेट करें । आप emulateडिफ़ॉल्ट स्थिति में विकल्पों को रीसेट करने के लिए बिलिन को कॉल कर सकते हैं ।

my_function () {
  setopt extended_glob local_options
}
another_function () {
  emulate -L zsh
  setopt extended_glob
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.