পাঠ্য দ্বারা নির্দেশিত হিসাবে, আপনাকে কেবল সাধারণ শেল কমান্ডের মতো ভেরিয়েবলগুলি (যেমন $VARNAME
বা দ্বারা ${VARNAME}
) উল্লেখ করতে হবে । যাইহোক, আপনাকে নিশ্চিত করতে হবে যে শেলটি তাদের আগে প্রসারিত করবে না।
এটি বর্ণনা করার জন্য এখানে কয়েকটি উদাহরণ দেওয়া হয়েছে (ধরে নেওয়া export FOO=BAR
):
$ echo '$FOO$FOO2' | envsubst
BAR
যেমন আপনি দেখতে পাচ্ছেন, by FOO2 "" দ্বারা প্রতিস্থাপিত হয়েছে কারণ এটি সংজ্ঞায়িত হয়নি। এখন আমরা সেই প্রতিস্থাপনটি কেবলমাত্র $ এফইও-র দ্বারা সীমাবদ্ধ করতে পারি:
$ 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
।