कोष्ठक की व्याख्या कमांड लाइन में कैसे की जाती है?


45

सेट अप करने के तरीके के बारे में पढ़ते हुए grub, मुझे एक लेख आया जिसमें दावा किया गया था कि मुझे निम्नलिखित दो वाक्यविन्यासों में से एक का उपयोग करने की आवश्यकता है,

echo \(hd0,0\) >> /boot/grub/grub.conf

या

echo '(hd0,0)' >> /boot/grub/grub.conf

क्योंकि, कमांड लाइन पर, कोष्ठकों की व्याख्या एक विशेष तरीके से की जाती है। कोष्ठक के बारे में क्या खास है? उनकी व्याख्या कैसे की जाती है?

जवाबों:


46

कोष्ठक बाश में एक उपधारा को दर्शाता है। man bashपृष्ठ को उद्धृत करने के लिए :

(list)    list  is  executed  in  a  subshell  environment (see COMMAND
          EXECUTION ENVIRONMENT below).  Variable assignments and builtin 
          commands that affect the shell's environment do not remain in 
          effect after the command completes.  The return status is the
          exit status of list.

जहां listकमांड का एक सामान्य क्रम है।

यह वास्तव में काफी पोर्टेबल है और केवल bashहालांकि विशिष्ट नहीं है । POSIX शेल कमांड भाषा कल्पना के लिए निम्नलिखित विवरण नहीं है (compound-list)वाक्य रचना:

एक उप-वातावरण में यौगिक-सूची निष्पादित करें ; शैल निष्पादन पर्यावरण देखें । वैरिएबल असाइनमेंट और बिल्ट-इन कमांड जो पर्यावरण को प्रभावित करते हैं, सूची समाप्त होने के बाद प्रभाव में नहीं रहेंगे।


बैश और अन्य गोले में ...?
जसोनव्रीयन

3
बैश वह है जिसके बारे में मैं पूछ रहा था ...
स्टीव ब्राउन

5
बीच क्या अंतर है $()और ()?
CMCDragonkai

5
@CMCDragonkai $()कमांड प्रतिस्थापन है, ()एक उपधारा है। वे दोनों कमांड चलाते हैं, अंतर यह है कि आउटपुट क्या होता है। प्रतीकों की तुलना में नामों को खोजना बहुत आसान है। यह भी देखें unix.stackexchange.com/q/213530/9537
jw013

12

कोष्ठक के बीच एम्बेडेड एक कमांड सूची एक उपधारा के रूप में चलती है।

किसी सबशेल में वेरिएबल्स सबहेल में कोड के ब्लॉक के बाहर दिखाई नहीं देते हैं। वे मूल प्रक्रिया के लिए पहुँच योग्य नहीं हैं, जो शेल के लिए उपधारा लॉन्च किया है। ये प्रभाव में हैं, स्थानीय चर।

Linuxtopia - अध्याय 20 देखें । सदस्यताएं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.