जैसा कि पाठ द्वारा इंगित किया गया है, आपको बस एक सामान्य शेल कमांड के रूप में चर (जैसे $VARNAME
या इसके द्वारा ${VARNAME}
) को संदर्भित करना होगा । हालांकि, आपको यह सुनिश्चित करना होगा कि शेल उन्हें पहले से विस्तारित नहीं करता है।
इसे समझने के लिए यहां कुछ उदाहरण दिए गए हैं (मानकर export FOO=BAR
):
$ echo '$FOO$FOO2' | envsubst
BAR
जैसा कि आप देख सकते हैं, $ FOO2 को "" द्वारा बदल दिया गया है क्योंकि यह परिभाषित नहीं था। अब हम उस प्रतिस्थापन को केवल $ FOO द्वारा प्रतिबंधित कर सकते हैं:
$ echo '$FOO$FOO2' | envsubst '$FOO'
BAR$FOO2
""
इसके बदले उपयोग करने से ''
पहले प्रतिस्थापन की आवश्यकता होगी:
echo '$FOO$FOO2' | envsubst "$FOO"
$FOO$FOO2
(यह प्रभावी कॉल की मात्रा है envsubst "BAR"
जो कोई चर का पता लगाता है ताकि कोई भी प्रतिस्थापित न हो।)
जैसा कि man
-पृष्ठ ने कहा, संदर्भित सभी चर SHELL-FORMAT
को प्रतिस्थापित किया जाता है, इसलिए हम ऐसा भी कर सकते हैं:
echo '$FOO$FOO2$FOO3' | envsubst '$FOO some more text ${FOO3}'
BAR$FOO2
जैसा कि आप देख सकते हैं, SHELL-FORMAT
काफी लचीला है।
अंत में, पैरामीटर --variables
आपको मूल्यांकन करने की अनुमति देता है कि किस चर को प्रतिस्थापन द्वारा चुना गया है SHELL-FORMAT
:
envsubst --variables '$FOO some more text ${FOO3}'
FOO
FOO3
इसके बाद के समय से पहले प्रतिस्थापन उदाहरण में त्रुटि दिखाई गई होगी:
$ envsubst --variables "$FOO"
(empty string returned)
जैसा कि इन- man
पेज में कहा गया है , envsubst
जब --variables
मौजूद हो तो कोई भी स्टडप्यूट प्रोसेस नहीं करता है।