मैं लिखी गई इस छोटी सी परीक्षा की स्क्रिप्ट को चला रहा हूं:
#!/bin/bash
TESTCASE=$@
testHarness <<runTest
$TESTCASE
runTest
कमांड लाइन से:
./test.sh "1092$212"
लेकिन डॉलर का चिन्ह छीना जा रहा है। अगर मैं इससे बचता हूं तो यह काम करता है। लेकिन मैंने सोचा कि दोहरे उद्धरण मुझे ऐसा करने की आवश्यकता से बचाएंगे। क्या कोई मुझे यह समझने में मदद कर सकता है कि क्या चल रहा है और इसे कैसे ठीक किया जाए?
समस्या यह है कि यह अस्पष्ट है - यहां तक कि मेरे लिए एक मानव के रूप में - आप यहां क्या चाहते हैं, इसलिए कंप्यूटर के पास कोई मौका नहीं है। शायद बैश दुभाषिया $ 212 प्राप्त करने की कोशिश कर रहा है। यदि आप एक चर का विस्तार करने की कोशिश करते हैं जो मौजूद नहीं है, तो बैश चुपचाप विफल हो जाता है, इस प्रकार $ छीन लिया जाता है। कोष्ठक के अंदर अपने चरों को लपेटने पर विचार करें, जैसे "1092 $ {2} 12"
—
ब्रायन पीटरसन