Loop "အတွက်" တစ်ဦးက Bash ရေးပါရန်ကဘယ်လို

shell ကို script များအတွက် loop "ဟုအဘို့" ဟုအဆိုပါကား Bash သုံးစွဲဖို့ကိုဘယ်လို

(Bourne တဖန် Shell ကအတိုကောက်ဖြစ်သော) Bash အများဆုံးအားဖြင့်အသုံးပြုသွားမည်တစ် scripting language တစ်ခုဖြစ်ပါတယ် Linux ကို နှင့် UNIX တွင်-based operating system မြား။

သငျသညျအခြားပြီးနောက် Terminal Window ကိုတဦးတည်းအတွင်း Bash command များကို run နိုင်ပါတယ်သို့မဟုတ်သင်တစ် shell ကို script ကိုထုတ်လုပ်မယ့်စာသားဖိုင်ရန်ပညတ်တော်တို့ကိုထည့်သွင်းနိုင်ပါတယ်။

shell ကို script များရေးသားခြင်းနှင့် ပတ်သက်. အကြီးအရာတစုံတခုကိုသင်အဖန်ဖန်သူတို့ကို run နိုငျသောကွောငျ့ဖွစျသညျ။ ဥပမာသင်သည်တစ်ဦးစနစ်အသုံးပြုသူက add သူတို့ရဲ့ခွင့်ပြုချက် set နဲ့သူတို့ရဲ့စတင်ပတ်ဝန်းကျင်စီမံခန့်ခွဲဖို့လိုတယ်ဆိုပါစို့။ သငျသညျစာရွက်တစ်ရွက်ပေါ်တွင်ပညတ်တော်တို့ကိုချရေးနှငျ့သငျအသစ်သောအသုံးပြုသူများကို add သို့မဟုတ်သင်တစ်ခုတည်းဇာတ်ညွှန်းရေးသား့ script ကိုသို့ parameters တွေကိုလွန်သွားနိုင်ပါတယ်အဖြစ်သူတို့ကို run နိုင်ပါတယ်ဖြစ်စေ။

ထိုကဲ့သို့သော Bash အဖြစ် scripting ဘာသာစကားများအခြားဘာသာစကားများအဖြစ်အလားတူပရိုဂရမ် Construction ရှိသည်။ ဥပမာအားဖြင့်သင်တင်သွင်း parameters များကိုသုံးနိုငျ ကီးဘုတ်ဆီက input get နဲ့ variable တွေကိုအဖြစ်သိမ်းဆည်းထားနိုင်ပါတယ်။ သငျသညျထို့နောက် script ကိုမှရနိုင် သည့် input ကို parameters တွေကို၏တန်ဖိုးအပေါ်အခြေခံပြီးအချို့အရေးယူလုပ်ဆောင်

မည်သည့် programming နဲ့ scripting နည်းဘာသာစကား၏အဓိကအစိတ်အပိုင်းတစ်ခုထပ်ကာထပ်ကာကုဒ်၏တူညီသောအပိုင်းအစကို run ဖို့စွမ်းရည်ဖြစ်ပါတယ်။

(စကွင်းအဖြစ်လူသိများ) ကုဒ်ပြန်လုပ်နည်းလမ်းများ၏နံပါတ်ရှိပါသည်။ ဒီလမ်းညွှန်ထဲမှာ, သင်က "အတွက်" ကွင်းဆက်ရေးသားဖို့ကိုဘယ်လိုပြသပါလိမ့်မည်။

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

ဒီလမ်းညွှန်ထဲမှာ, သင်က Bash Script ကိုအတွင်းများအတွက်ကွင်းဆက်သုံးစွဲဖို့နညျးလမျးငါးခုကိုပြသပါလိမ့်မည်။

စတင်ခင်မှာ

သငျသညျကွင်းဆက်ဥပမာများအတွက်အတူစတင်ရန်မီ, သင်တစ်ဦး Terminal Window ကိုဖွင့်လှစ်နှင့်ဤအဆင့်များအတိုင်းဆောင်ရွက်ဖို့လိုအပ်:

  1. mkdir script များ Enter ( ဤနေရာတွင် mkdir အကြောင်းပိုမိုလေ့လာသင်ယူ )
  2. cd script များ Enter (ဒီ directory ကိုပြောင်းလဲ script များမှ)
  3. nano examplen.sh Enter (ဎသင်တို့အပေါ်မှာအလုပ်လုပ်နေသာဓကသည်အဘယ်မှာရှိ)
  4. ဇာတ်ညွှန်း Enter
  5. မှထွက်ရန်ကယ်တင်နှင့် CTRL + X ကိုမှ Ctrl + အို
  6. (ဎသငျနှငျ့အတူအလုပ်လုပ်နေစံနမူနာဖြစ်ခြင်းနှင့်အတူနောက်တဖန်) ကား Bash examplen.sh Run

ဘယ်လို Loop ရန်စာရင်းမှတဆင့်

#! / bin / ကား Bash
1 2 3 4 5 မှာအရေအတွက်
ပြုပါ
$ number ကိုပဲ့တင်သံ
ပြီးပြီ
ထွက်ပေါက် 0 င်

ကွင်း "အတွက်" သုံးပြီး၏ Bash လမ်းအများဆုံးကိုအခြား programming နဲ့ scripting language ကွင်း "အတွက်" ကိုင်တွယ်လမ်းကိုအတန်ငယ်ကွဲပြားခြားနားသည်။ ဇာတ်ညွှန်းဖြိုဖျက်ကြပါစို့ ...

အားလုံး loop "ဟုအဘို့" ဟု Bash မှာတော့အကြားထုတ်ပြန်ချက်များပြုပြုစာရင်းထဲတွင်ရှိသမျှသောအရာအတွက်တစ်ကြိမ်ဖျော်ဖြေနေကြသည်။

အထက်ပါဥပမာမှာစာရင်း (ဆိုလိုသည်မှာ 1 2 3 4 5) အတွက်စကားလုံးနောက်ကြွလာအရာအားလုံးကိုဖြစ်ပါတယ်။

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

အဆိုပါ ပဲ့တင်သံ ကြေညာချက်မျက်နှာပြင်မှသတင်းအချက်အလက်ပြသအသုံးပြုသည်။

ထို့ကြောင့်, ဒီဥပမာ 5 မှတစ်ဆင့်နံပါတ်များ 1 ယူပြီးမျက်နှာပြင်မှသူတို့ကိုတဦးတည်းအားဖြင့်တဦးတည်း Output ဖြစ်ပါတယ်:

ဘယ်လို Loop ဖို့ Start ကိုနဲ့ End Point သို့အကြား

အထက်ပါဥပမာအတူဒုက္ခပိုကြီးတဲ့စာရင်း (500 1 မှပြောပါ) ကို process ချင်လျှင်, ပထမဦးဆုံးဌာန၌ရှိသမျှသောနံပါတ်များကိုရိုက်ထည့်ဖို့အသက်အရွယ်ယူမယ်လို့ဖြစ်ပါတယ်။

ဒါကက start နှင့်အဆုံးအမှတ်ကိုသတ်မှတ်ဖို့ဘယ်လိုပြသသောဒုတိယဥပမာဖို့ကျွန်တော်တို့ကိုဆောင်တတ်၏:

#! / bin / ကား Bash
{1..10} အတွက်အရေအတွက်
ပြုပါ
"$ number ကို" ပဲ့တင်သံ
ပြီးပြီ
ထွက်ပေါက် 0 င်

အဆိုပါစည်းမျဉ်းစည်းကမ်းတွေကိုအခြေခံအားဖြင့်တူညီကြသည်။ မှတဆင့် iterate နှင့်စာရင်းထဲတွင်တစ်ဦးချင်းစီတန်ဖိုး variable ကို (ဆိုလိုသည်မှာနံပါတ်) ထဲတွင်နေရာနှင့်တစ်ဦးချင်းစီအချိန်ကွင်းဆက်ကြားမှာပြုခြင်းနှင့်ပြုသောအမှုအကြားထုတ်ပြန်ချက်များဖျော်ဖြေနေကြသည်ဖြစ်ပါတယ်စာရင်းဖွင့်ပါစေ "၌" ဟူသောစကားလုံးပြီးနောက်တန်ဖိုးများ။

အဓိကခြားနားချက်စာရင်းကိုဖွဲ့စည်းသည်လမ်းဖြစ်၏။ အဆိုပါ curly bracket {} အခြေခံအားဖြင့်အကွာအဝေးကိုဆိုလိုသနှင့်, အကွာအဝေး, ဤကိစ္စတွင်အတွက်, (နှစ်ခုအစက်တစ်ခုအကွာအဝေးရဲ့ start နှင့်အဆုံးခွဲထုတ်) 10 1 မှဖြစ်ပါတယ်။

ဒီဥပမာ, ဒါကြောင့်, 1 နှင့် 10 အကြားတစ်ဦးချင်းစီအရေအတွက်ကမှတဆင့်ပြေးအောက်ပါအတိုင်းမျက်နှာပြင်မှအရေအတွက်ကို Output ဖြစ်ပါတယ်:

အလားတူကွင်းဆက်အတူဤကဲ့သို့သောစာဖြင့်ရေးသားခဲ့ကြနိုင် syntax ကိုပထမဦးဆုံးသာဓကမှတူညီ:

1 2 3 4 5 6 7 8 9 10 အရေအတွက်

တစ်ဦး Range အတွက်နံပါတ် Skip လုပ်နည်း

ယခင်ဥပမာဘယ်လိုတစ်ဦးက start နှင့်အဆုံးအမှတ်အကြားကွင်းဆက်မှပြသ, ဒါကြောင့်ယခုကျွန်ုပ်တို့သည်အကွာအဝေးအတွင်းနံပါတ်များကို skip ကိုမည်သို့ကိုကြည့်ပါလိမ့်မယ်။

သငျသညျ 0 င် 100 အကြားကွင်းဆက်ချင်မြင်ယောင်ကြည့်ပါပေမယ်သာတိုင်းဒသမအရေအတွက်ကိုပြသပါ။ အောက်ပါ script ကိုဖွင့်ကြောင်းမည်သို့လုပ်ဆောင်ရမည်ကိုပြသထားတယ်:

#! / bin / ကား Bash
{0..100..10} အတွက်အရေအတွက်
ပြုပါ
"$ number ကို" ပဲ့တင်သံ
ပြီးပြီ
ထွက်ပေါက် 0 င်

အဆိုပါစည်းမျဉ်းစည်းကမ်းတွေကိုအခြေခံအားဖြင့်တူညီကြသည်။ စာရင်းတစ်ခု, တစ်ဦး variable ကိုနှင့်မပြုသောအမှုများအကြားဖျော်ဖြေခံရဖို့ထုတ်ပြန်ချက်များအစုတခုရှိပါတယ်။ {0..100..10}: အဆိုပါစာရင်းကိုဤအချိန်ဤသူနဲ့တူလှပါတယ်။

ပထမဦးဆုံးနံပါတ်တစ်ခုပါ 0 င်သည်နှင့်အဆုံးအရေအတွက်က 100 ဖြစ်ပါတယ်တတိယအရေအတွက်က (10) က skip တံ့သောစာရင်းထဲတွင်ပစ္စည်းအရေအတွက်ဖြစ်ပါတယ်။

အထက်ပါဥပမာထို့ကြောင့်အောက်ပါ output ကိုပြသ:

Loop သည်တစ်ဦးကနောက်ထပ်ရိုးရာ Looking

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

သငျသညျ, သို့သော်, ဤကဲ့သို့သော, C Programming Language ကိုမှအလားတူစတိုင်ကွင်းဆက်တစ်ခုရေးဖို့နိုင်သည်

#! / bin / ကား Bash
(; အရေအတွက်က <က 100; အရေအတွက်သည် ++) (နံပါတ်တစ်ခု = 1) များအတွက်
{
(($ number ကို% 5 == 0)) လျှင်
ထိုအခါ
"$ number ကို 5 စားလို့ရတယ်" ဟုပဲ့တင်သံ
fi
}
ထွက်ပေါက် 0 င်

အဆိုပါကွင်းဆက် 1 (နံပါတ်တစ်ခု = 1) ရန် variable ကိုအရေအတွက်က setting အားဖြင့်စတင်သည်။ နံပါတ်၏တန်ဖိုးကိုထက်နည်းပေါင်း 100 (နံပါတ် <100) ဖြစ်ပါသည်နေတုန်းအဆိုပါကွင်းဆက်ကြားမှာစောင့်ရှောက်မည်။ အရေအတွက်တန်ဖိုးချင်းစီကြားမှာ (နံပါတ် ++) ပြီးနောက်သူက 1 မှဖြည့်စွက်ခြင်းဖြင့်ပြောင်းလဲစေပါသည်။

အဆိုပါ curly ဆီကိုဦးအကြားအရာအားလုံးသည် loop ၏တစ်ဦးချင်းစီကြားမှာဖျော်ဖြေနေသည်။

အဆိုပါမသန်စွမ်းပဲအကြားနည်းနည်း, နံပါတ်၏တန်ဖိုး check လုပ်ပေးပါတယ် 5 ဖြင့်အပိုင်းသုံးပိုင်းနှင့်ကျန်ပါ 0 င်ပြီးတော့အရေအတွက်က 5 စားလို့ရတယ်ဖြစ်ပါသည်ထို့နောက် screen ပေါ်မှာပြသလျှင် 0. ရန်ကျန်ရှိသောနှိုင်းယှဉ်။

ဥပမာ:

သင်ကြားမှာ၏ခြေလှမ်းအရွယ်အစားကိုပြောင်းချင်တယ်ဆိုရင်သင်အရေအတွက်ကို ++ အပိုင်းအရေအတွက်က = အရေအတွက်ကို + 2, နံပါတ် = အရေအတွက်ကို + 5, ဒါမှမဟုတ်အရေအတွက်က = အရေအတွက်ကို + 10 စသည်တို့ကိုဖြစ်ပြင်ဆင်ရန်နိုင်ပါတယ်

ဒါဟာနောက်ထပ်အရေအတွက်က + = 2 သို့မဟုတ်နံပါတ် + = 5 လျှော့ချနိုင်ပါတယ်။

လက်တွေ့ဥပမာ

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

အောက်ပါပုံနမူနာကနေအသံဖိုင်တွေကို convert ကိုဘယ်လိုပြသထားတယ် MP3 ကို မှ WAV :

#! / bin / ကား Bash

ဒီဥပမာထဲမှာစာရင်းဟာလက်ရှိဖိုင်တွဲထဲမှာ .MP3 extenstion နဲ့တိုင်းဖိုင်နှင့် variable ကိုဖိုင်တစ်ဖိုင်ဖြစ်ပါသည်။

အဆိုပါစိုင်းစိုင်းခမ်းလှိုင် command ကို WAV သို့ MP3 ဖိုင်ပြောင်းပေးပါတယ်။ သို့သျောလညျးသငျသညျဖြစ်ကောင်းပထမဦးဆုံးသင့်ရဲ့အထုပ်မန်နေဂျာကိုအသုံးပြုပြီးဒီတပ်ဆင်ရန်လိုအပ်သည်။