यह मेरी समझ है कि अधिक आधुनिक $(...)
कमांड प्रतिस्थापन सिंटैक्स को पुराने- `
आधारित सिंटैक्स पर पसंद किया जाता है , आसान और कम त्रुटि वाले नेस्टिंग और बच सिंटैक्स के कारण।
इसके अलावा, ऐसा लगता है कि /bin/sh
आधुनिक उपयोग समर्थन में अधिकांश शैल शैल $(…)
:
- दे घुमा के
- ऐश (और इसलिए बिजीबॉक्स, इसलिए सबसे अधिक एम्बेडेड लिनक्स)
- पानी का छींटा
- फ्रीबीएसडी / बिन / श
और $(…)
IEEE 1003.1 द्वारा निर्दिष्ट किया गया है।
इसलिए मेरे पास 2 बहुत ही संबंधित प्रश्न हैं:
- क्या शेल स्क्रिप्ट्स के नए विकास में `का उपयोग करने का कोई कारण है जब तक आप एक विशिष्ट पुरानी प्रणाली के बारे में नहीं जानते हैं जिसे स्क्रिप्ट को चलाने की आवश्यकता होगी?
- क्या कोई कारण नहीं है कि यूनिक्स प्रोग्रामिंग के छात्रों को केवल लिखना न पढ़ा जाए
$(...)
, और`
केवल एक अप्रचलित संस्करण के रूप में चर्चा करें कि वे संभावित रूप से मुठभेड़ करेंगे यदि वे अन्य डेवलपर्स के शेल स्क्रिप्ट पढ़ रहे हैं (और आवश्यकता हो सकती है यदि वे वास्तव में पुरानी प्रणाली या गैर-मानक के साथ काम कर रहे हैं किसी कारण के लिए)?
$()
- शिफ्ट + 4,9, शिफ्ट + 0 - 5 प्रमुख प्रेस;
`...`
। यह केवल बॉर्न शेल के साथ पिछड़े पोर्टेबिलिटी के लिए है (जैसे थॉमसन शेल के साथ बैकवर्ड पोर्टेबिलिटी के लिए बॉर्न शेल के^
समान ही था|
)। ध्यान दें कि(t)csh
नहीं है,$(...)
लेकिन (या तो उन्हें सिखाने या सिखाने का कोई मतलब नहीं है)।