কোনও ভেরিয়েবল স্থাপন করার সময় .bashrc, আমি কি এটি ব্যবহার করব?
export VAR=value
নাকি এই যথেষ্ট হবে?
VAR=value
ঠিক কী পার্থক্য আছে (যদি থাকে তবে)?
কোনও ভেরিয়েবল স্থাপন করার সময় .bashrc, আমি কি এটি ব্যবহার করব?
export VAR=value
নাকি এই যথেষ্ট হবে?
VAR=value
ঠিক কী পার্থক্য আছে (যদি থাকে তবে)?
উত্তর:
export VAR=value
এরকম
VAR=value
শুধুমাত্র স্ক্রিপ্টের সময়কালের জন্য পরিবর্তনশীল সেট করে ( .bashrcএই ক্ষেত্রে)। স্ক্রিপ্টের চাইল্ড প্রসেসগুলি (যদি থাকে তবে) ভিএআর সংজ্ঞায়িত হবে না এবং একবার স্ক্রিপ্টটি প্রস্থান VARহয়ে গেলে ।
export VAR=value
VARশিশু প্রসেসগুলিতে পাস করা ভেরিয়েবলের তালিকায় স্পষ্টভাবে যুক্ত হয়। এটি চেষ্টা করতে চান? শেল খুলুন, করুন
PS1="foo > "
bash --norc
নতুন শেলটি ডিফল্ট প্রম্পট পায়। পরিবর্তে আপনি যেমন কিছু করতে
export PS1="foo > "
bash --norc
নতুন শেলটি আপনার সবেমাত্র সেট করা প্রম্পট পায়।
আপডেট: ইয়ার কেলিং নোটগুলি হিসাবে ভেরিয়েবলের নীচে নোটগুলি সেরে .bashrcথাকা শেলটিতে অবিরত থাকে .bashrc। সাধারণত যখনই শেলটি স্ক্রিপ্টের ( source scriptnameকমান্ডটি ব্যবহার করে ) স্ক্রিপ্টের জন্য নির্ধারিত ভেরিয়েবলগুলি শেলের জীবন ধরে থাকে।
PS1পরিবেশ পরিবর্তনশীল হিসাবে রফতানি করা একটি ভেরিয়েবলের একটি খারাপ উদাহরণ। এটি কেবল শিশু প্রক্রিয়াগুলির জন্য অর্থবহ যা শাঁস এবং এটি বিভিন্ন শেল (যেমন, ব্যাশ এবং ড্যাশ) দ্বারা আলাদাভাবে ব্যাখ্যা করা হয়। শ্রেষ্ঠ অনুশীলন কেবলমাত্র একটি নিয়মিত শেল পরিবর্তনশীল হিসাবে সেট হয় .bashrc। বিভিন্ন পরিবেশের উন্নত উদাহরণ হল HOME, PATH, EDITOR, ইত্যাদি
উভয়ই ঠিক কাজ করছে বলে মনে হচ্ছে, তবে রফতানি ব্যবহারটি নিশ্চিত করবে যে ভেরিয়েবল সাব-শেল এবং অন্যান্য প্রোগ্রামের জন্য উপলব্ধ। এটি পরীক্ষা করার জন্য এটি চেষ্টা করে দেখুন।
আপনার .bashrc ফাইলে এই দুটি লাইন যুক্ত করুন
TESTVAR="no export"
export MYTESTVAR="with export"
তারপরে একটি নতুন শেল খুলুন।
চলমান echo $TESTVARএবং echo $MYTESTVARপ্রতিটি ভেরিয়েবলের বিষয়বস্তু প্রদর্শন করবে। এখন সেই একই শেলের ভিতরে আপনার .bashrc ফাইল থেকে সেই দুটি লাইন সরান এবং bashসাবসেল শুরু করতে চালান ।
চলমান echo $TESTVARএকটি খালি আউটপুট হবে, কিন্তু চলমান echo $MYTESTVAR"রপ্তানি সঙ্গে" প্রদর্শন করা হবে