मैं एक चर कि स्ट्रिंग के इस प्रकार शामिल है:वाइल्डकार्ड का विस्तार किये बिना मैं बैश वैरिएबल में चर का विस्तार कैसे करूं?
var='$FOO/bar/baz*'
और मैं अपनी सामग्री से चर $ FOO बदलना चाहते हैं। हालांकि, जब मैं करना
var=$(eval "echo $var")
चर बदल दिया जाता है, लेकिन स्टार भी बदल दिया जाता है ताकि var
अब मेरी फाइल सिस्टम में हर संभव मैच होता है (के रूप में अगर मैं एक खोल में टैब दबाया)। उदाहरण के लिए, यदि $ FOO में/home है, var
में "/home/bar/baz1.sh /home/bar/baz2.sh /home/bar/baz.conf"
मैं वाइल्डकार्ड का विस्तार किए बिना चर को कैसे बदलूं?
यह भी देखें http://mywiki.wooledge.org/TemplateFiles –
यदि आपका लक्ष्य केवल ग्लोबिंग अक्षम करना है, तो 'set -f' ऐसा करेगा। यदि आपका लक्ष्य सुरक्षित टेम्पलेट मूल्यांकन करना है ... अच्छा, बैश में टेम्पलेट्स के बारे में _safe_ कुछ भी नहीं है, क्योंकि आप कमांड प्रतिस्थापन को अक्षम नहीं कर सकते हैं; यानी, '$ (आरएम-आरएफ "$ HOME") वाला एक टेम्पलेट, बस यही करेगा। –