এই টিউটোরিয়ালে দেখানো হবে কিভাবে export কীওয়ার্ড দিয়ে ব্যাশ/শেল স্ক্রিপ্টে এনভায়রনমেন্ট ভেরিয়েবল সেট করা যায়।
সাধারণত ব্যাশ/শেল স্ক্রিপ্টে ডিক্লেয়ার করা ভেরিয়েবলগুলো শুধু সেই রানিং স্ক্রিপ্টের স্কোপে থাকে।
এগুলো অন্য জায়গায় উপলব্ধ করতে হলে এনভায়রনমেন্ট ভেরিয়েবল হিসেবে সেট করতে হয় — মানে ভেরিয়েবলটি স্ক্রিপ্ট पूरा হওয়ার পরও কমান্ড লাইন থেকে বা সিস্টেমের অন্যান্য রানিং প্রোগ্রাম থেকে অ্যাক্সেসযোগ্য থাকবে।
export কীওয়ার্ডটি এই কাজটি করে — এখানে কীভাবে ব্যবহার করবেন তা দেখানো হলো।
এনভায়রনমেন্ট ভেরিয়েবল কী?
এনভায়রনমেন্ট ভেরিয়েবল অন্যান্য ভেরিয়েবলের মতো কাজ করে, কিন্তু এটি সব জায়গায় উপলব্ধ থাকে — স্ক্রিপ্টের ভিতরে, কমান্ড লাইনে, এবং অন্যান্য রানিং প্রোগ্রামে।
আপনার সিস্টেমে ইতিমধ্যে অনেক এনভায়রনমেন্ট ভেরিয়েবল ডিফাইন করা থাকে — উদাহরণস্বরূপ, আপনার হোম ডিরেক্টরি $HOME এনভায়রনমেন্ট ভেরিয়েবল পড়ে পাওয়া যায়।
বর্তমানে সেট করা সমস্ত এনভায়রনমেন্ট ভেরিয়েবল দেখতে env কমান্ড চালান:
env
export দিয়ে এনভায়রনমেন্ট ভেরিয়েবল সেট করা
নিচের স্ক্রিপ্ট, testScript.sh, একটি এনভায়রনমেন্ট ভেরিয়েবল সেট করে এবং এক্সিট করে:
#!/bin/bash export MY_ENV_VAR="Save the environment!"
উপরোক্ত স্ক্রিপ্ট এক্সিকিউট করলে:
sh ./testScript.sh
MY_ENV_VAR ভেরিয়েবলটি পরে উপলব্ধ থাকবে। এটি নিশ্চিত করতে চালান:
echo $MY_ENV_VAR
এনভায়রনমেন্ট ভেরিয়েবল সেট হয়েছে এবং এখন সিস্টেমের সকলে এটি উপলব্ধ।
printenv কমান্ডও এনভায়রনমেন্ট ভেরিয়েবল দেখতে ব্যবহার করা যায়:
printenv MY_ENV_VAR
রিবুটের পরও বজায় রাখা
export দিয়ে সেট করা এনভায়রনমেন্ট ভেরিয়েবল কম্পিউটার রিবুট করলে বজায় থাকে না। চিরকাল সেট রাখতে হলে এটিকে আপনার ~/.bashrc ফাইলে ডিক্লেয়ার করতে হবে।
~/.bashrc ফাইলটি একটি স্ক্রিপ্ট যা প্রতিবার লগইন করার সময় রান হয়। এতে আপনার export স্টেটমেন্টগুলো যোগ করলে প্রতিটি সেশনে আপনার এনভায়রনমেন্ট ভেরিয়েবল যোগ হয়ে যাবে।
nano ~/.bashrc
উপরে nano টেক্সট এডিটর দিয়ে ফাইলটি এডিট করা হয়েছে। ফাইলের শেষে আপনার export স্টেটমেন্ট যোগ করুন, রিবুটের পর সেগুলো থাকবে:
export MY_ENV_VAR="Save the environment!"
সিস্টেম-ওয়াইড এনভায়রনমেন্ট ভেরিয়েবল
এই এনভায়রনমেন্ট ভেরিয়েবলগুলো শুধু কারেন্ট ইউজার-এর জন্য থাকবে। আপনি যদি অ্যাডমিনিস্ট্রেটর হন এবং সকল ইউজার ও প্রসেসের জন্য উপলব্ধ করতে চান, তবে /etc/environment ফাইলে লাইনগুলো যোগ করুন:
sudo nano /etc/environment