আপনার কেবল export
শ্যাবেলে চালু হওয়া অন্যান্য প্রোগ্রামগুলির দ্বারা কেবল "দেখা" হওয়া উচিত, যখন কেবল শেলের ভিতরেই ব্যবহৃত হয় সেগুলি export
সম্পাদনের দরকার হয় না ।
ম্যান পেজ এটাই বলে:
The supplied names are marked for automatic export to the environ‐
ment of subsequently executed commands. If the -f option is given,
the names refer to functions. If no names are given, or if the -p
option is supplied, a list of all names that are exported in this
shell is printed. The -n option causes the export property to be
removed from each name. If a variable name is followed by =word,
the value of the variable is set to word. export returns an exit
status of 0 unless an invalid option is encountered, one of the
names is not a valid shell variable name, or -f is supplied with a
name that is not a function.
এটি নিম্নলিখিত দ্বারা প্রদর্শিত হতে পারে:
$ MYVAR="value"
$ echo ${MYVAR}
value
$ echo 'echo ${MYVAR}' > echo.sh
$ chmod +x echo.sh
$ ./echo.sh
$ export MYVAR="value-exported"
$ ./echo.sh
value-exported
ব্যাখ্যা:
- আমি প্রথমে
${MYVAR}
একটি শেল ভেরিয়েবল হতে সেট করেছি MYVAR="value"
। echo
আমি ব্যবহার করে এর মান প্রতিধ্বনিত করতে পারি কারণ প্রতিধ্বনি শেলের একটি অংশ।
- তারপর আমি তৈরি
echo.sh
। এটি একটি ছোট স্ক্রিপ্ট যা মূলত একই রকম হয়, এটি কেবল প্রতিধ্বনিত হয় ${MYVAR}
, তবে পার্থক্যটি এটি একটি পৃথক প্রক্রিয়াতে চলবে কারণ এটি একটি পৃথক স্ক্রিপ্ট।
echo.sh
এটিকে কল করার সময় কোনও ফলাফল নেই, কারণ নতুন প্রক্রিয়া উত্তরাধিকার সূত্রে আসে না${MYVAR}
- তারপরে আমি কীওয়ার্ড
${MYVAR}
দিয়ে আমার পরিবেশে রফতানি করিexport
- আমি এখন
echo.sh
আবার এটি চালানোর সময় , এটি ${MYVAR}
পরিবেশের কাছ থেকে পেয়ে যায় বলে এর সামগ্রীর প্রতিধ্বনি দেয়
সুতরাং আপনার প্রশ্নের উত্তর দিতে:
এটি নির্ভর করে যেখানে কোনও ভেরিয়েবল ব্যবহার করা হবে, আপনাকে এটি রফতানি করতে হবে কি না।