"$" के अंदर एक "s" क्या है?


10

मैं आम तौर पर की सामग्री से अच्छी तरह से वाकिफ हूं $-। हाल ही में एक CentOS पर:

[grochmal@orion ~]$ echo $-
himBH

hmBHसभी विकल्पों से हैं set, और iइसका मतलब है कि मेरा शेल इंटरैक्टिव है।

फिर भी, मेरे आर्क लिनक्स पर मुझे मिला:

[grochmal@haps ~]$ echo $-
himBHs

मुझे इसमें कुछ भी उपयोगी नहीं मिल रहा है man bashऔर set -sमुझे एक त्रुटि देता है। इसके लिए क्या है s?

जवाबों:


13

-sविकल्प के साथ बैश शुरू कॉल है -s, जो साधन मानक में "" से स्रोत कमांड "के मैनुअल से।:

-s यदि -s विकल्प मौजूद है, या यदि विकल्प प्रसंस्करण के बाद कोई तर्क नहीं रहता है, तो मानक इनपुट से कमांड पढ़े जाते हैं। यह विकल्प एक इंटरैक्टिव शेल को लागू करते समय स्थितीय मापदंडों को सेट करने की अनुमति देता है।

यह परीक्षण करना बहुत आसान है:

$ bash -c 'echo $-'
hBc

$ bash -sc 'echo $-'
hBcs

पिछले सभी बैश संस्करणों के लिए एक नया शेल शुरू करना डिफ़ॉल्ट रूप से उस विकल्प को सेट नहीं करता है:

$ b32sh -li
$ echo $-
himBH

लेकिन यह बैश 4.4 में है:

$ b44sh -li
$ echo $-
himBHs

और दूसरा भाग बताता है कि मुझे आर्क पर ऐसा क्यों मिला। मेरा CentOS का मान BASH_VERSION4.2.46 (1) है, जबकि आर्क पर यह 4.4.5 है (1) -release।
grochmal
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.