এর মধ্যে পার্থক্য কী:
a=b
এবং
export a=b
বাশে?
আমি বুঝতে পারি যে তারা উভয়ই পরিবেশের পরিবর্তনগুলি সংজ্ঞায়িত করে তবে আমি পার্থক্যটি পুরোপুরি বুঝতে পারি না।
এর মধ্যে পার্থক্য কী:
a=b
এবং
export a=b
বাশে?
আমি বুঝতে পারি যে তারা উভয়ই পরিবেশের পরিবর্তনগুলি সংজ্ঞায়িত করে তবে আমি পার্থক্যটি পুরোপুরি বুঝতে পারি না।
উত্তর:
export
সাব-প্রসেসেসে ভেরিয়েবল প্রচার করে।
উদাহরণস্বরূপ, যদি আপনি এটি করেন
FOO=bar
তারপরে একটি সাবপ্রসেস যা এফওওর জন্য পরীক্ষা করে সেখানে চলকটি খুঁজে পাবে না
export FOO=bar
উপ-প্রসেসটিকে এটি সন্ধান করার অনুমতি দেবে।
কিন্তু যদি FOO
করেছে ইতিমধ্যে একটি পরিবেশ পরিবর্তনশীল হিসেবে সংজ্ঞায়িত করা হয়েছে, তারপর FOO=bar
পরিবেশ ভেরিয়েবলের মান পরিবর্তন করতে হবে।
উদাহরণ স্বরূপ:
FOO=one # Not an environment variable
export FOO # Now FOO is an environment variable
FOO=two # Update the environment variable, so sub processes will see $FOO = "two"
পুরানো শেল export FOO=bar
সিনট্যাক্স সমর্থন করে না ; আপনি লিখতে ছিল FOO=bar; export FOO
।
export
" ব্যবহার না করেন , আপনি একটি পরিবেশের পরিবর্তনশীল সংজ্ঞা দিচ্ছেন না, তবে কেবল একটি শেল ভেরিয়েবল। শেল ভেরিয়েবলগুলি কেবল শেল প্রক্রিয়াতে উপলব্ধ; পরিবেশের ভেরিয়েবলগুলি কেবল শাঁস নয়, পরবর্তী কোনও প্রক্রিয়াতে উপলব্ধ । তদতিরিক্ত, সাবশেলগুলি হ'ল বন্ধনীগুলির মধ্যে থাকা কমান্ডগুলি যা শেল ভেরিয়েবলগুলিতে অ্যাক্সেস পায়, যখন আপনি যা বলছেন তা শিশু প্রক্রিয়াগুলি শাঁস হতে পারে।
এছাড়াও, যদি আপনি রফতানি ব্যবহার না করে কলিং শেলটিতে পরিবর্তনশীল উপলব্ধ করতে চান তবে আপনি এটি করতে পারেন:
A.ksh ফাইলটি হ'ল -
#!/bin/ksh
FOO=bar
প্রম্পটে, এটি চালান
> . a.ksh
এটি একই শেলের মধ্যে কমান্ডগুলি চালিত করবে এবং $ FOO উপলব্ধ থাকবে will
যেহেতু,
> a.ksh
শুধুমাত্র a.ksh এর মধ্যে OO এফইউ উপলব্ধ হবে, a.ksh এ কল করার পরে এটি উপস্থিত থাকবে না।