ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်
Environment variable ဆိုတာ shell က မှတ်ထားတဲ့ key-value data ပါ — $HOME (home folder path), $USER (username), $PATH (program ရှာရမယ့် folder list) စသည်ဖြင့် system-wide setting တွေကို သိမ်းထားပါတယ်။ python3 လို command ရိုက်လိုက်တာနဲ့ shell က $PATH ထဲ ဖော်ပြထားတဲ့ folder တွေကို အစဉ်လိုက် ရှာပြီး python3 executable ကို ရှာတွေ့တာနဲ့ run ပေးပါတယ် — PATH ထဲမပါတဲ့ folder ထဲက program ကို command name ချည်းနဲ့ run လို့ မရပါဘူး (full path ရေးရမယ် ဒါမှမဟုတ် ./ ကြိုတပ်ရမယ်)။ export VAR=value က variable အသစ်ဖန်တီးပြီး terminal session အဲဒီတစ်ခုအတွက် သိမ်းထားပေးပါတယ်, terminal ပိတ်လိုက်ရင် ပျောက်ပါတယ်။
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
echo $HOME, echo $PATH ကို run ကြည့်ရင် ကိုယ့် system ရဲ့ setting ကို တိုက်ရိုက် မြင်ရပါတယ်။ Terminal ပိတ်လိုက်တိုင်း environment variable ပျောက်စေမလိုချင်ရင် ~/.bashrc ဖိုင်ထဲမှာ export line ထည့်ထားရပါတယ် — terminal အသစ် ဖွင့်တိုင်း .bashrc ကို ပထမဆုံး load လုပ်တာမို့ permanent setting လို့ ခံစားရပါလိမ့်မယ် (နောက်ခန်းများမှာ .bashrc ကို ထပ်တွေ့ပါဦးမယ်)။ API key, database password လိုမျိုး sensitive data တွေကို code ထဲ hardcode မလုပ်ဘဲ environment variable အနေနဲ့ ခွဲထားတာက security practice တစ်ခုပါ။
အတူတူ terminal ထဲ စမ်းမယ်
echo $HOME
echo $PATH
export MY_NAME="Alice"
echo $MY_NAME
export PATH=$PATH:$HOME/scripts # folder အသစ်ကို PATH ထဲ ထပ်ထည့်echo $PATH ကို run ရင် folder path များ colon (:) ဖြင့်ခြားထားပြီး list တစ်ခုအနေနဲ့ ပေါ်လာမည်။၅ မိနစ် စမ်းကြည့်
export MY_NAME="ကိုယ့်နာမည်" ကို run ပြီး echo $MY_NAME နဲ့ ပြန်စစ်ပါ။ Terminal ပိတ်ပြီး ပြန်ဖွင့်ကြည့်ပြီး variable ဆက်ရှိလား စစ်ပါ။
သတိလေးတစ်ချက်
PATH variable ကို export PATH=/only/one/folder လို overwrite လုပ်လိုက်ရင် ls, cd စတာတောင် run မရတော့နိုင်ပါတယ် — ရှိပြီးသား $PATH ကို အမြဲ ထည့်ထားပါ ($PATH:...)။