ကအရင်ကဆိုရင်များအတွက်အစပြုသူကရေးသားတစ်ခုတည်းသော Bash သင်ခန်းစာကြောင်းအတွက်ထူးခြားတဲ့အရာကား Bash စီးရီးရန် Beginners လမ်းညွှန်၏ 2nd တစ်စိတ်တစ်ပိုင်းမှလှိုက်လှဲစွာကြိုဆိုပါသည်။
ငါသည်ငါ့အသိပညာတည်ဆောက်ခြင်းနှင့်မျှော်လင့်ကအပေါင်းတို့၏အဆုံးအားဖြင့်ငါတို့သည်အချို့သောမျှမျှတတလိမ္မာပါးနပ် script များရေးသားဖို့နိုင်ပါလိမ့်မည်အဖြစ်ဒီလမ်းညွှန်၏စာရှုသူများဟာသူတို့ရဲ့အသိပညာတည်ဆောက်ပါလိမ့်မယ်။
ပြီးခဲ့သည့်အပတ်ကငါဖုံးလွှမ်း သင့်ရဲ့ပထမဦးဆုံးဇာတ်ညွှန်းကို ရိုးရှင်းစွာစကားများ "Hello World" ပြသရာ။ ဒါဟာစကားလုံးများကို "Hello World" နှင့်ထိုကဲ့သို့သောကိုးကား ( "") အဖြစ်ထွက်ပေါက်ဇာတ်ကောင်အပေါ်အချို့သောအသေးစိတ်အချက်များဖော်ပြရန်ဖို့ဘယ်လို, ဘယ်မှာသင့်ရဲ့ script များထားရန်, တစ်ဦး terminal ကိုပြတင်းပေါက်ဖွင့်ဖို့ဘယ်လို, ထိုကဲ့သို့သောစာသားကိုအယ်ဒီတာများအဖြစ်ဘာသာရပ်များဖုံးလွှမ်း။
ယခုတပတ်ငါ input ကို parameters တွေကိုကိုဖုံးလွှမ်းသွားနေပါတယ်။ အရာ၏ဤမျိုးသင်ပေးပေမယ့်သူတို့ကတချို့မျှမျှတတအနိမ့်အဆင့်အထိပစ္စည်းပစ္စယသို့ခုန်နှင့်ဒါနဲ့ပတ်သက်ပြီးလွန်းသတင်းအချက်အလက်များကိုရှာတွေ့သောအခြားလမ်းညွှန်များရှိပါတယ်။
တစ်ဦးက Parameter ဆိုတာဘာလဲ
ပြီးခဲ့သည့်သင်ခန်းစာကနေ "Hello World" script ကိုခုနှစ်တွင်ကအားလုံးကိုအလွန်အငြိမ်ဖြစ်ခဲ့သည်။ အဆိုပါ script ကိုတကယ်မှာအားလုံးတာမလုပ်ခဲ့ဘူး။
ကြှနျုပျတို့မညျ "Hello World" script ကိုပေါ်တိုးတက်ကောင်းမွန်နိုင်မည်နည်း
အဘယ်အရာကိုကပြေးသူကိုနှုတ်ဆက်တဲ့ဇာတ်ညွှန်းကော? အဲဒီအစား "Hello World" ဟုက "မင်္ဂလာပါဂယ်ရီ", "မင်္ဂလာပါတိ" သို့မဟုတ် "မင်္ဂလာပါဒျေါလီ" လို့ပြောပါလိမ့်မယ်။
input ကို parameters တွေကိုလက်ခံဖို့နိုင်စွမ်းမရှိရင်ကျနော်တို့သုံး script များ "hellogary.sh", "hellotim.sh" နှင့် "hellodolly.sh" ရေးသားဖို့လိုအပ်ပါတယ်လိမ့်မယ်။
ကျွန်တော်တို့ရဲ့ script ကို input ကို parameters တွေကိုဖတ်ရှုဖို့ခွင့်ပြုအားဖြင့်ငါတို့သည်အဘယ်သူကိုမျှနှုတ်ဆက်ဖို့တစျခု script ကိုသုံးနိုင်သည်။
(ဒီလိုလုပ်ဖို့ Terminal ကိုင်းဒိုး (Ctrl + Alt + T) ကိုဖွင့်ဖွင့်လှစ်ခြင်းနှင့်အောက်ပါစာရိုက်ခြင်းအားဖြင့်သင့် script များဖိုလ်ဒါ navigate cd command ကိုအကြောင်းကို )
cd script များ(အောက်ပါစာရိုက်ခြင်းဖြင့် greetme.sh ကိုခေါ်သစ်တစ်ခု script ကို Create ထိတွေ့ command ကိုအကြောင်းကို )
ထိတွေ့ greetme.shအောက်ပါစာရိုက်ခြင်းအားဖြင့်သင့်အကြိုက်ဆုံးအယ်ဒီတာအတွက် script ကိုဖွင့်ပါ: ( nano command ကိုအကြောင်းကို )
nano greetme.shnano အတွင်းအောက်ပါစာသားကိုရိုက်ထည့်ပါ:
#! / bin / ကား Bash ပဲ့တင်သံ "ဟဲလို $ @"ဖိုင်ကိုပိတ်ဖို့ရန်ထို့နောက် CTRL နှင့် X ကိုဖိုင်ကို save နှင့်စာနယ်ဇင်း CTRL နှင့်အို။
ဇာတ်ညွှန်းကို run ဖို့သင်တို့၏နာမနှင့်အတူအစားထိုးက command line သို့အောက်ပါရိုက်ထည့်ပါ။
greetme.sh shငါသည်ငါ၏နာမကိုအမှီနှင့်အတူ script ကို run ပါလျှင်ထိုသို့စကားများ "မင်္ဂလာပါဂယ်ရီ" ဖော်ပြပေးမှာဖြစ်ပါတယ်။
ပထမဦးဆုံးအလိုင်းတစ်ကား Bash script အဖြစ်ဖိုင်ကိုခွဲခြားသတ်မှတ်ဖို့အသုံးပြုသည့် #! / bin / ကား Bash လိုင်းရှိပါတယ်။
ဒုတိယလိုင်းဟဲလိုဟူသောစကားလုံး echo ဖို့ပဲ့တင်သံကြေညာချက်ကိုအသုံးပြုသည်နှင့်ထို့နောက်ထူးဆန်းတဲ့ $ @ သင်္ကေတလည်းမရှိ။ ( ပဲ့တင်သံ command ကိုအကြောင်းကို )
အဆိုပါ $ @ script ကိုနာမကိုအမှီနှင့်အတူဝငျသော parameter သည်ဖော်ပြရန်ချဲ့ထွင်။ ဒါကြောင့်သင် "sh greetme.sh Tim" ဆိုသောစကားကို "ဟဲလို Tim" ပြသမည်ဖြစ်ကြောင်းရိုက်နှိပ်လျှင်။ သင် "greetme.sh Tim Smith" ရိုက်နှိပ်လျှင်ဆိုသောစကားကို "ဟဲလို Tim Smith" ပြသမည်ဖြစ်သည်။
အဆိုပါ greetme.sh script ကိုဖွင့်မယ့်ပထမဦးဆုံး name အသုံးပြုခြင်းဟဲလိုပြောဘို့ဒါဟာကောင်းတဲ့ဖြစ်လိမ့်မယ်။ ဘယ်သူမှသူတို့သညျငါ့ကိုခရီးဦးကြိုပြုခြင်းအခါသူတို့သည်သော်လည်း "ဟဲလို Gary" ဟုပြောစေခြင်းငှါ, "Gary newell ဟဲလို" လို့ပြောပါတယ်။
ဒါကြောင့်ကိုယ့်ကိုပထမဦးဆုံး parameter သည်ကိုအသုံးပြုနိုင်အောင်ရဲ့ဇာတ်ညွှန်းကိုပြောင်းလဲကြပါစို့။ အောက်ပါစာရိုက်ခြင်းဖြင့် nano အတွက် greetme.sh script ကိုဖွင့်:
nano greetme.shအောက်မှာဖော်ပြထားတဲ့အတိုင်းကဖတ်နိုင်အောင် script ကိုပြောင်းပေးပါ:
#! / bin / ကား Bash ပဲ့တင်သံ "ဟဲလို $ 1"CTRL နှင့်အိုကိုနှိပ်ခြင်းအားဖြင့် script ကို Save ပြီးရင် CTRL နှင့် X တို့မှာနှိပ်ခြင်းဖြင့်ထွက်ပေါက်
(ဥစ္စာနှင့်အတူငါ၏နာမကိုအစားထိုးဖို့) အောက်မှာပြထားတဲ့အတိုင်း script ကို run:
Gary newell greetme.sh shသင် script ကို run လိုက်တဲ့အခါဒါဟာရိုးရှင်းစွာ« hello Gary "(သို့မဟုတ်မျှော်လင့်« hello" နှင့်သမျှသင်၏အမည်ကိုပြောပါလိမ့်မယ်။
အဆိုပါ $ သင်္ကေတနောကျ 1 အခြေခံအားဖြင့်ပထမဦးဆုံး parameter သည်ကိုအသုံးပြုဖို့, ထိုပဲ့တင်သံ command ကိုမှကပြောပါတယ်။ သင်တစ်ဦး $ 2 နှင့်အတူ $ 1 ကိုအစားထိုးလျှင်ကြောင့်« hello newell "(သို့မဟုတ်သမျှသင့်ရဲ့အမညျဖွစျသညျ) ဖော်ပြရန်လိမ့်မယ်။
သင်တစ်ဦး $ 3 နှင့်အတူ $ 2 အစားထိုးခြင်းနှင့် output ကိုရိုးရှင်းစွာ "ဟဲလို" ဖြစ်လိမ့်မယ်မယ့် 2 parameters တွေကိုအတူ script ကိုပွေးလေ၏စကားမစပ်လျှင်။
ဒါဟာအမှန်တကယ်ထဲသို့ဝင် parameters တွေကိုများ၏အရေအတွက်ကိုပြသခြင်းနှင့်ကိုင်တွယ်ရန်ဖြစ်နိုင်သမျှဖြစ်ပြီးနောက်ပိုင်းမှာလဲ tutorial အတွက်ငါ validation ကိုရည်ရွယ်ချက်များအတွက် parameter သည် count ကသုံးစွဲဖို့ဘယ်လောက်ဖေါ်ပြခြင်းခံရပါလိမ့်မယ်။
parameters များကိုများ၏အရေအတွက်ကိုဖေါ်ပြဖို့ greetme.sh script ကို (nano greetme.sh) ပွင့်လင်းသို့ ဝင်. အောက်ပါအတိုင်းစာသားပြင်ဆင်ရန်:
#! / bin / ကား Bash ပဲ့တင်သံ "ဟဲလို $ @" "သင် $ # အမည်များကိုဝင်ကြ၏" echonano မှထွက်ရန်ဇာတ်ညွှန်းနှင့် CTRL နှင့် X ကိုကယ်ဖို့ Press မှ CTRL နှင့်အို။
အဆိုပါ 2nd လိုင်းပေါ် $ # ထဲသို့ဝင် parameters တွေကို၏နံပါတ်ဖော်ပြပေးမှာဖြစ်ပါတယ်။
ဤရွေ့ကား, ဤအမှုအလုံးစုံတို့ကို၏ဝတ္ထုမဟုတ်အလွန်အသုံးဝင်ခဲ့သည်။ အဘယ်သူသည်ရိုးရှင်းစွာ "ဟဲလို" ပြသတဲ့ script ကိုလိုဦးမှာလဲ
ပဲ့တင်သံထုတ်ပြန်ချက်များများအတွက်အမှန်တကယ်အသုံးပြုမှုအသုံးပြုသူမှ verbose နှင့်အဓိပ္ပါယ်ရှိသော output ကိုပေးဖို့ဖြစ်ပါတယ်။ သငျသညျအချို့ကိုသင်အလေးအနက် crunching နံပါတ်နှင့်ဖိုင် / ဖိုလ်ဒါကိုခြယ်လှယ်ကပါဝင်ပတ်သက်ရသောရှုပ်ထွေးတစ်ခုခုလုပ်ချင်သောစိတ်ကူးနိုင်မယ်ဆိုရင်ဒါဟာလမ်းတစ်ဦးချင်းစီခြေလှမ်းဘာတွေဖြစ်နေတယ်ဆိုတာကိုအသုံးပြုသူမှပြသရန်အသုံးဝင်သောပါလိမ့်မယ်။
ဆန့်ကျင်ဘက်အားဖြင့်, input ကို parameters တွေကိုသင့်ရဲ့ဇာတ်ညွှန်းအပြန်အလှန်အကျိုးသက်ရောက်မှုပါစေ။ input ကို parameters တွေကိုမရှိရင်သင်တို့ရှိသမျှသည်အလွန်ဆင်တူသောအရာတို့ကိုလုပ်နေတာ script များများစွာလိုအပ်ပါတယ်ပေမယ့်အနည်းငယ်ကွဲပြားခြားနားသောအမည်များနှင့်အတူလိမ့်မယ်။
စိတ်ထဲ၌ဤသားအပေါင်းတို့နှင့်အတူကသိရန်နှင့်ကျနော်တဦးတည်းကုဒ်အတိုအထွာ၌သူတို့အားလုံးပါဝငျမညျကောင်းတစ်စိတ်ကူးကြောင်းကိုအချို့သောအခြားအသုံးဝင်သော input ကို parameters များကိုရှိပါတယ်။
သင့်ရဲ့ greetme.sh script ကိုဖွင့်ခြင်းနှင့်အောက်ပါအတိုင်းပြုလုပ်ပြင်ဆင်ရန်:
# / bin / ကား Bash ပဲ့တင်သံ "Filename: $ 0 င်"! ပဲ့တင်သံ "လုပ်ငန်းစဉ်အိုင်ဒီ: $$" ပဲ့တင်သံ "---------------------------- --- သင် $ # အမည်များကို "ပဲ့တင်သံ" ဟဲလို $ @ "ဝငျကွ" echo "မှထွက်ရန်ဖိုင်ကိုနှင့် CTRL နှင့် X ကိုကယ်ဖို့ Press မှ CTRL နှင့်အို။
အခုဆိုရင် (သင့်နာမည်ကိုအစားထိုး) ကို script ကို run လိုက်ပါ။
greetme.sh shဤအချိန် script ကိုအောက်ပါဖော်ပြပေး:
filename: greetme.sh Process ကိုအိုင်ဒီ: 18595 ------------------------------ သင်ဟဲလို 2 အမည်များကိုဝင်ကြ၏ Gary newellဇာတ်ညွှန်း၏ပထမလိုင်းပေါ် $ 0 င်သင် run နေတဲ့ဇာတ်ညွှန်း၏နာမတော်ကိုဖော်ပြပေးမှာဖြစ်ပါတယ်။ ဒါကြောင့်ဒေါ်လာတန်ဖိုးသုညနှင့်မဒေါ်လာစျေးဏကြောင်းသတိပြုပါ။
ဒုတိယလိုင်းပေါ် $$ သင့်ရဲ့ running နေသောဇာတ်ညွှန်း၏လုပ်ငန်းစဉ်အိုင်ဒီဖော်ပြပေးမှာဖြစ်ပါတယ်။ အဘယ်ကြောင့်ဒီအအသုံးဝင်လဲ? သင် foreground အတွက် script ကို run နေနေတယ်ဆိုရင်သင်ရိုးရှင်းစွာသင်နောက်ခံအတွက် script ကိုပွေးကြောင့်ထပ်ခါထပ်ခါအတူတူပါပဲထပ်ခါတလဲလဲနှင့်လုပ်နေတာစတင်ခဲ့ပြီးသို့မဟုတ်သင့် system ကိုပျက်စီးစေစတင်ခဲ့ပြီး အကယ်. သင်လိုအပ်မယ်လို့ CTRL နှင့် C. ကိုနှိပ်ခြင်းဖြင့်ပယ်ဖျက်နိုင်သည် သတ်ရန်။
သင် script ၏လုပ်ငန်းစဉ်အိုင်ဒီလိုအပ်ပါတယ်နောက်ခံပြေးတစ်ဦး script ကိုသတ်ပစ်ရန်။ ဇာတ်ညွှန်းက၎င်း၏ output ကို၏တစ်စိတ်တစ်ပိုင်းအဖြစ်လုပ်ငန်းစဉ်အိုင်ဒီကိုပေး၏လျှင်ကောင်းသောဖြစ်လိမ့်မည်မဟုတ်ပေ။ ( ps အကြောင်းကိုနှင့်ပညတ်တော်တို့ကိုသတ်ခြင်းငှါ )
ငါသည်ဤခေါင်းစဉ်နှင့်အတူပြီးအောင်မတိုင်မီနောက်ဆုံးအနေနဲ့ငါ output ကိုဝင်ဘယ်မှာအကြောင်းကိုဆွေးနွေးရန်ချင်တယ်။ အခါတိုင်းဇာတ်ညွှန်းက output ကို screen ပေါ်မှာပြသထားပြီး, အရှင်ဝေးပြေးခဲ့သည်။
script ကို output ကိုတစ်ဦး output ကိုဖိုင်ကိုရေးသားခံရဖို့အတှကျဒါဟာအတော်လေးဘုံဖြစ်ပါတယ်။ အောက်မှာဖေါ်ပြတဲ့အတိုင်းဒီလိုလုပ်ဖို့သင့်ရဲ့ဇာတ်ညွှန်းကို run:
greetme.sh sh Gary> greetme.logအထက်ပါ command ကိုအတွက်> သင်္ကေတ greetme.log လို့ခေါ်တဲ့ဖိုင်စာသား« hello Gary "Output ဖြစ်ပါတယ်။
သင်> သင်္ကေတနှင့်အတူ script ကို run အခါတိုင်းက output ကိုဖိုင်ရဲ့ contents overwrites ။ သင်ဖိုင် append အလိုရှိပါလျှင်> >> အတူအစားထိုးလိုက်ပါ။
အကျဉ်းချုပ်
သငျသညျယခုမျက်နှာပြင်မှစာသားကိုရေးပါနဲ့ input ကို parameters တွေကိုလက်ခံဖို့နိုင်ခဲ့ဖြစ်သင့်သည်။