April 24, 2012

Hello B Shell

ဆာဗာအပလီကေးရှင်းများ ရေးသားသူတွေအတွက်တော့ ရင်းနှီးပြီး ဘာသာရပ်တစ်မျိုးဖြစ်ပါသည်။ Open Source အပလီများ ခေတ်စားလာသည်နှင့်အတူ Linux ဆာဗာများသည်လည်း အသုံးများလာကြပါသည်။ ဂျပန်လိုနိုင်ငံမျိုးမှာတော့ ဆာဗာစက်အတော်များများသည် ယခင်ကတည်းက Solaries, AIX ကဲ့သို့ Unix ဆာဗာများကို အသုံးပြုခဲ့သခဲ့သို့ Open Source ခေတ်အရောက်မှာလည်း Unix ကို အခြေခံသော Linux ဆာဗာများကို အသုံးပြုလာပါသည်။

Unix အခြေခံ Linux စက်များသည် ယခင်ကတည်းက ဆာဗာအတွက်ကိုရည်ရွယ်ပြီး ရေးသားခဲ့ပါသဖြင့် ဆာဗာအတွက် အလွန်သင့်တော်သည်မှာ မေးစရာပင်မလို။ ယခုနောက်ပိုင်းတွင် GUI ဘက်ပိုင်းဆိုင်ရာတွင် တိုးတက်လာခဲ့ပြီး Ubintu၊ CentOS အစရှိသည့် Personal PC သုံး Linux OS များကြောင့် Linux ကို ပို၍ လူသိများလာခဲ့ပါသည်။

Shell ဆိုသည်မှာ Linux စက်များအပေါ်တွင် အသုံးပြုနိုင်သော လွန်စွာအသုံးဝင်သည့် Script ဘာသာရပ် တစ်မျိုးဖြစ်ပါသည်။ Linux ကို အသုံးပြုဘူးသူတိုင်းသိရှိပါလိမ့်မည်။ Linux တွင် GUI အပြင် CUI Interface သည် လွန်စွာမှ အသုံးဝင်လှပါသည်။ Linux စက်ပေါ် Login လုပ်ပြီး Command Prompt ကို ဖွင့်ကာ ls ဟု ကွန်မန်းကို ရိုက်လိုက်ပါက လက်ရှိ Directory အောက်ရှိ ဖိုင် နှင့် ဒိုင်အတ္တရီများကို ဖော်ပြပေးနိုင်ပါသည်။ ထိုကဲ့သို့ ကွန်မန်းများသည် Shell ကွန်မန်းများဖြစ်ကြပြီး၊ ထို Shell ကွန်မန်းများအား စီရီ၍ ကွန်ပျူတာအား လိုအပ်သလို ခိုင်းစေနိုင်ပါသည်။ Shell ကွန်မန်းများ စီရီရေသားထားသော Text ဖိုင်များအား Shell Script ဖိုင်များ ဟုခေါ်ဆိုပါသည်။

Shell သည် အမျိုးအစားကွဲပေါင်းများစွာရှိ၏။ ထင်ရှားသည်မှာ Bash Shell၊ C Shell, Korn Shell (kshell) တို့ဖြစ်ကြ၏။ ထို့အပြင် Shell ဘာသာရပ်၏ ဝါကျများသည် လွန်စွာရိုးရှင်း၍ တော်ရုံ ကွန်ပျူတာပရိုဂရမ်မင်း အခြေခံရှိသူ တစ်ယောက်ဆိုပါက အထွေအထူးလေ့လာစရာမလိုပဲ Manual များကို ဖတ်ပြီး လက်တမ်း ချရေးနိုင်လောက်အောင် လွယ်ကူလှပါသည်။ တဖန် Shell တစ်မျိုးမျိုးကို လေ့လာဖူးပါက ကျန်သော Shell များကိုလည်း လွယ်ကူစွာ လေ့လာ အသုံးပြုနိုင်ပါသည်။ ထို့အပြင် Shell များသည် လွယ်ကူရုံသာမက လွန်စွာမှ အသုံးဝင်လှပေသည်။ ဤခေါင်းစဉ်ဖြင့် ဘယ် Linux အပေါ်တွင်မဆို Default အနေဖြင့် ပါဝင်သော B Shell အကြောင်းကို မိတ်ဆက်သွားပါမည်။


Hello B Shell

ပြောနေသည်ထက် ရေးကြည့်သည် ကပို၍မြန်ပါသည်။


Linux တာမိနယ်ကို ဖွင့်၍ အထက်ပါအတိုင်း vi hello.sh ဖြင့် Text ဖိုင်တစ်ခုရေးသားရန် vi Editor ကို ဖွင့်ပါမည်။ ပြီးလျှင် အောက်ပါ Shell ကွန်မန်းများကို ရေးသားပါမည်။

#!/bin/sh

echo "Hello B Shell"
ပဋ္ဌမစာကြောင်းဖြင့် အသုံးပြုမည့် Interpreter ကို သတ်မှတ်နေပါသည်။ ဤနေရာတွင် /bin/sh ဟု ရေးသားထားပါသည်။ Interpreter ၏ နေရာသည် စက်နှင့် အသုံးပြုသူ၏ သက်မှတ်ချက်အပေါ်တွင် မှုတည်၍ ပြောင်းလည်းတတ်ပါသည်။ ထို့ကြောင့် ဘယ်နေရာမှာ shell ၏ Interpreter ရှိမှန်းမသိပါက which sh ဟု ရိုက်ကြည့်ပါက အသုံးပြုနေသည့် Interpreter ၏ နေရာကို ဖော်ပြပေးပါမည်။ တတိယစာကြောင်းသည် ဤ စကရစ်တွင် အသုံးပြုမည့် အမိန့်ပေးစာကြောင်းဖြစ်ပါသည်။ ဤနေရာတွင် echo "Hello B Shell" ဟု ရေးသားထားပါသည်။ echo ကွန်မန်းကို အသုံးပြု၍ "Hello B Shell" ဟူသည့် စာကြောင်းကို ဖော်ပြပေးနိုင်ပါသည်။

ပြီးပါက cat hello.sh ဖြင့် ရေးသားထားသော စာများအား ပြန်ဖွင့်ကြည့်ပါမည်။ ပြီးလျှင် ls -l ကွန်မန်းကို ရိုက်ထည့်လိုက်ပါက hello.sh ဖိုင်ကို တွေ့ရမည် ဖြစ်သည်။ vi ဖြင့်ရေးထားသော ဖိုင်သည် Default အတိုင်းဆိုပါက ရေးသား၍ ဖတ်နိုင်သော (-rw-rw-r--) Text ဖိုင်တစ်ခုသာဖြစ်ပါမည်။ Shell Script အဖြစ်အသုံးပြုနိုင်ရန် chmod +x hello.sh ဟု ပါမစ်ရှင်းကို ပြောင်းလည်းပါမည်။

-rwxrwxr-x ဟု Runnable ဖိုင်အဖြစ်ပြောင်းလည်းသွားသည်ကို တွေ့ရပါမည်။ သင်သည် Shell Script ဖိုင်တစ်ခုကို ရေးသားပြီး ဖြစ်ပါလိမ့်မည်။ ./hello.sh ဟု ရိုက်ကြည့်ပါက ရေးသားထားသော hello.sh သည် အလုပ်လုပ်ပြီး Hello B Shell ဟု ဖော်ပြပေးနိုင်သည်ကို တွေ့ရပါလိမ့်မည်။

တစ်ခုသတိထားမိမည် ဖြစ်ပါသည်။ hello.sh ကို ခေါ်ယူရာတွင် ./hello.sh ဟု ရေးသားနေပါသည်။ အကြောင်းမှာ ကွန်ပျူတာတစ်လုံးတွင် ကွန်မန်းများအား ခေါ်ယူရာတွင် အသုံးပြုမည့် နေရာများကို ကြိုတင်သတ်မှတ်ထားရန်လိုအပ်ပါသည်။ ကွန်ပျူတာအတွင်းတွင် အသုံးပြုမည့် ကွန်မန်းများအား PATH ဟု အမည်ရသော ကိန်းရှင်အတွင်းတွင် ကြိုတင်သတ်မှတ်ထားရန်လိုအပ်ပါသည်။

အကယ်၍ hello.sh ရိုက်လိုက်ပါက PATH အတွင်းတွင် hello.sh ကို ရှာဖွေမည် ဖြစ်၏။ မတွေ့ပါက ရှာမတွေ့ပါဟု အဖြေပြန်ထုတ်ပေးမည် ဖြစ်၏။ ယခုတစ်ခေါက်တွင် hello.sh ကို ရေးသားသားသော ဒိုင်အတ္တရီအား PATH အတွင်းတွင် သတ်မှတ်ထားခြင်းမရှိသောကြောင့် နေရာအတိအကျကို ဖော်ပြပေးရန် လိုအပ်ပါသည်။ ./ သည် Current Directory ကို ဖော်ပြနိုင်ပါသဖြင့် ./hello.sh ဟု ရေးသားရခြင်း ဖြစ်ပါသည်။ ဤကဲ့သို့ရေးသားသောကြောင့် current directory အောက်ရှိ hello.sh ကို အလုပ်လုပ်ရန်လိုအပ်သည်ဟု ကွန်ပျူတာမှသိရှိနိုင်ပြီး Hello B Shell ဟု ပြန်လည် ဖော်ပြပေးနိုင်ခြင်းဖြစ်ပါသည်။


ကွန်မန့်များ

ပရိုဂရမ်တစ်ခုသည် ကွန်မန်းများကို စီရီရေထားခြင်းဖြင့် အလုပ်လုပ်စေနိုင်ပါသည်။ သို့ရာတွင် ကွန်မန်းများကြီးသာဆိုပါက လူတစ်ယောက်က ဖက်ကြည့်မည်ဆိုလျှင် နားလည်ရခက်ခဲမည် ဖြစ်သည်။ နောင်တစ်ချမ်း ပြန်ဖတ်ကြည့်မည်ဆိုလျှင် တစ်ခါတစ်လေ ဘာရေးထားမှန်း မသိ ဖြစ်တတ်ပါသည်။

ပရိုဂရမ်များအားနာလည် လွယ်ကူစေရန် ပရိုဂရမ်အတွင်းတွင် အလုပ်လုပ်ရန် မလိုသော်လည်း ရေးသားသူများ နားလည်လွယ်စေရန် ကွန်မန့်များကို ရေးသားလေ့ရှိ၏။ C နှင့် java ဘာသာရပ်များတွင်// /* */ အစရှိသည့် လက္ခဏာများကို အသုံးပြု၍ ကွန်မန့်များကို ရေးသားလေ့ရှိ၏။ Shell ဘာသာရပ်တွင်လည်း ကွန်မန့်များကို ရေးသားနိုင်ပါသည်။

# စ၍ ရေးသားထားသော စာကြောင်းများသည် ကွန်မန့်များဖြစ်ကြ၏။ အထက်ပါ hello.sh အား ကွန်မန့်တစ်ခု ဖြည့်စွက်ရေးသားကြည့်ပါမည်။


#!/bin/sh

# out hello b shell
echo "Hello B Shell"
အထက်ပါအတိုင်း # out hello b shell ဟုရေးသားထားသော စာကြောင်းသည် ကွန်မန့် စာကြောင်းဖြစ်ပါသဖြင့် ပရိုဂရမ်ကအလုပ်လုပ်စရာမလိုပဲ echo "Hello B Shell" ကိုသာ အလုပ်လုပ်စေမည် ဖြစ်ပါသည်။


ယနေ့ဘလောဂ်ဖြင့် Shell Script တစ်ခု ရေးသားပုံကို လွယ်ကူစွာ မိတ်ဆက်ခဲ့ပါသည်။ Shell Script ပရိုဂရမ်တစ်ခုသည် ကွန်မန်းများကို စီရီရေးသားထားသော Text ဖိုင်တစ်ခုဖြစ်ပြီး၊ ကွန်မန်းများအကြားတွင် ရေးသားသူများ ဖတ်၍ နားလည်လွယ်ကူစေရန် ကွန်မန့်များကို ဖြည့်စွက် ရေးသားနိုင်ပါသည်။

နောက်ဘလောဂ်ဖြင့် Shell တွင် အသုံးပြုနိုင်သော ကိန်းရှင်များ အကြောင်းကို ဆက်လက်ဖော်ပြပါဦးမည်။


လေးစားစွာဖြင့်
မင်းလွင်

No comments:

Post a Comment