जवाबों:
यहाँ दो गोले शामिल हैं:
कॉलिंग शेल, इंटरैक्टिव शेल जिसमें से आप इसे चला रहे हैं
गैर-लॉगिन, गैर-संवादात्मक शेल, द्वारा प्रायोजित bash -c
अब, समस्या यह है कि दोहरे उद्धरण चिह्नों के भीतर चर को उनके संबंधित मूल्यों तक विस्तारित किया जाता है, यह किसी भी शेल के लिए सही है।
तो, जैसा कि आपने दोहरे उद्धरण चिह्नों का उपयोग किया है, चर विस्तार, $v
वास्तव में कॉलिंग शेल में हो रहा है, न कि शेल। लेकिन घोषणा, v=value
गैर-संवादात्मक शेल पर हो रही है।
तो, कुल मिलाकर, आपके पास बुलाया शेल में परिभाषित चर है और कॉलिंग शेल में विस्तारित (पहले से) है। चूंकि कॉलिंग शेल में वैल्यू वैरिएबल परेशान है, इसलिए आपको आउटपुट में कुछ नहीं मिल रहा है।
अब, गोलाकार खोल में जगह लेने के लिए चर परिभाषा और विस्तार करने के लिए, एकल उद्धरण या भागने का उपयोग करें $
:
$ bash -c "v=value; echo $v"
$ bash -c 'v=value; echo $v'
value
$ bash -c "v=value; echo \$v"
value
$v
इंटरेक्टिव शेल द्वारा डबल कोट्स को प्रतिस्थापित किया जाता है। एकल उद्धरण का उपयोग करें:
$ bash -c 'v=value;echo $v'
value