2013-10-19 8 views
14

बैश में, () और $() दोनों एक सबहेल बनाएं।

एक दूसरे के बीच क्या अंतर है? उनके सामान्य उपयोग क्या है?

उत्तर

15

() सिर्फ कंपाउंड कमांड बनाता है, जो कि कोष्ठक के अंदर कमांड चला रहा है। $() वही करता है, लेकिन आउटपुट को भी प्रतिस्थापित करता है।

डॉक्स से:

  1. (list)
    list एक subshell वातावरण में निष्पादित किया जाता है ... चर कार्य और builtin आदेशों खोल के पर्यावरण को प्रभावित आदेश पूर्ण होने के बाद प्रभाव में नहीं रहते हैं । वापसी स्थिति list की निकास स्थिति है।

  2. कमान प्रतिस्थापन
    कमान प्रतिस्थापन एक कमांड के उत्पादन में आदेश नाम को बदलने के लिए अनुमति देता है। वहाँ दो प्रकार हैं:

    $(command) 
    

    या

    `command` 
    

    बैश command को क्रियान्वित करने और आदेश, तो अवांछित नष्ट कर दिया नई-पंक्तियों के साथ के मानक उत्पादन के साथ आदेश प्रतिस्थापन की जगह विस्तार करता है।

+3

एक "आह" पल! "कमांड प्रतिस्थापन" यह है कि हम एक चर के लिए कमांड के आउटपुट को असाइन करने में सक्षम हैं, उदा। 'RESULT = $ (आदेश)' के साथ, '$ (कमांड) 'का आउटपुट कमांड को प्रतिस्थापित करता है और फिर उसे' RESULT 'को सौंपा जाता है। –

संबंधित मुद्दे