10 Cool at Kahanga-hangang mga Halimbawa ng Bash Loop

10 Cool At Kahanga Hangang Mga Halimbawa Ng Bash Loop



Sa programming language, mayroong pangunahing tatlong uri ng mga loop (para sa, habang, at hanggang). Ang lahat ng tatlong uri ng mga loop ay mahalaga sa iba't ibang paraan. Walang gaanong pagkakaiba sa pagitan ng habang at hanggang sa mga loop, ngunit para sa loop ay gumagana medyo naiiba mula sa dalawang ito. Iyon ang dahilan kung bakit maaari mong gamitin ang mga loop na ito upang lumikha ng mga interactive na script bilang isang gumagamit ng bash.

Kaya ang pag-aaral ng mga halimbawa ng bash ay makakatulong sa iyo na mapabuti ang iyong mga kasanayan sa paggawa ng mga script. Kaya sa tutorial na ito, isasama namin ang 10 cool at kahanga-hangang mga halimbawa ng bash loop na maaari mong subukang pahusayin ang iyong mga kasanayan sa pag-script.







10 Cool at Kahanga-hangang mga Halimbawa ng Bash Loop

Sa seksyong ito, ipapaliwanag namin ang iba't ibang mga halimbawa at ang mga diskarte na ginamit namin sa mga loop.



Seq Command With Loop sa Bash

Maaari mong gamitin ang seq command sa for loop upang lumikha ng pagkakasunod-sunod ng mga numero. Halimbawa, mayroon kang bash script na 'File.sh' na naglalaman ng sumusunod na code:



#!/bin/bash
para sa A sa $ ( seq 5 dalawa 25 )
gawin
echo 'mga bilang ng $A ay'
tapos na





Makukuha mo ang sumusunod na resulta pagkatapos isagawa ang script sa terminal:

. / file.sh




Palitan ang pangalan ng mga File Gamit ang Loop

Gamit ang isang bash script, maaari mong gamitin ang para sa mga loop upang palitan ang pangalan ng maraming file. Halimbawa, marami kang .txt na file at gusto mong idagdag ang kasalukuyang petsa kasama ang pangalan. Kaya narito ang halimbawang script na magagamit mo:

#!/bin/bash
para sa A sa $ ( ls * .txt ) ; gawin
mv $A ( basename $A .txt ) _$ ( petsa % d % m % ) .txt
tapos na


Ngayon, maaari mong patakbuhin ang script, at babaguhin nito ang pangalan ng lahat ng .txt na file sa pamamagitan ng pagdaragdag ng kasalukuyang petsa:

. / MyFile.sh



Katulad nito, maaari mong baguhin ang mga extension ng isang file sa pamamagitan ng isang script. Kaya't baguhin natin ang .txt extension sa .sh sa pamamagitan ng sumusunod na script:

#!/bin/bash
para sa file sa * .txt; gawin
mv -- ' $file ' '{file%.txt}.sh'
tapos na

Pagkatapos isagawa ang script sa terminal, makukuha mo ang .sh sa halip na .txt na mga file:

. / MyFile.sh


Walang-hanggan Para sa Loop sa Bash

Kapag walang tinukoy na kondisyon ng pagwawakas sa loop, ito ay tinatawag na infinite loop. Sa halimbawang ito ng Bash loop, titingnan natin ang infinite para sa loop sa bash. Ang sumusunod na infinite for loop ay tinutukoy ng double semicolon ( ; ; ) at hindi naglalaman ng anumang bahagi ng inisyal, aksyon, o pagwawakas.

Ang script sa ibaba ay magpapatuloy hanggang sa pindutin mo ang Ctrl+C o i-type ang “quit” bilang input. Ipi-print ng script na ito ang bawat numero mula 10 hanggang 50 na ibinibigay bilang input. Kung hindi, magpi-print ito ng 'number is out of range.'

#!/bin/bash
#walang katapusan na loop
para sa ( ( ; ; ) )
gawin
echo 'Maglagay ng numero sa pagitan ng 10 hanggang 50'
basahin n
kung [ $n == 'quit' ]
pagkatapos
echo 'tinapos na'
labasan 0
maging
kung ( ( $n < 10 || $n > limampu ) )
pagkatapos
echo 'Ang numero ay wala sa hanay'
iba pa
echo 'Ang bilang ay $n '
maging
tapos na

Nagbigay kami ng 45 at 23 wastong input sa script sa itaas. Pagkatapos nito, nag-print kami ng 2 bilang input na nagsasabi sa output na 'wala sa saklaw ang numero.' Pagkatapos nito, upang isara ang script, nag-type kami ng quit bilang input. Dito maaari mo ring pindutin ang Ctrl+C para itigil ang infinite loop.

Tatlong Expression Loop sa Bash

Ito ay kilala mula sa pangalan ng three-expression loop na binubuo ito ng tatlong expression, na tinatawag ding control expression. Ang unang expression (EXP1) ay ang initializer, ang pangalawang expression (EXP2) ay ang loop test o kundisyon, at ang ikatlong expression (EXP3) ay ang counting expression/step. Magpatakbo tayo ng three-expression loop sa bash:

#!/bin/bash
para sa ( ( n = 5 ; n > = 1 ; n-- ) )
gawin
echo 'Aklat $n '
tapos na

Sa pagpapatakbo ng script sa itaas, makakakuha ka ng sumusunod na output.

Loop na May Maramihang Kundisyon

Ginamit namin ang hanggang loop na may maraming kundisyon sa sumusunod na halimbawa ng bash loop. Sa script na ito, kinuha namin ang 'm' at 'n,' dalawang variable na ang mga halaga ay 20 at 10, ayon sa pagkakabanggit, at pinanatili ang limitasyon na 15. Dito pinagsama namin ang 'm' at 'n' na mga kondisyon sa loop, kung saan tatakbo ang loop hanggang ang halaga ng 'm' ay mas mababa sa limitasyon at 'n' ay higit pa sa limitasyon.

#!/bin/bash
limitasyon = labinlima
m = dalawampu
n = 10
hanggang [ [ $m -lt $limit || $n -gt $limit ] ] ;
gawin
echo 'Kung M = $m pagkatapos ay N = $n '
( ( m-- ) )
( ( n++ ) )
tapos na

Maaari mong makita na ang pagpapatakbo ng script sa itaas ay tatakbo hanggang ang mga halaga ng 'm' at 'n' ay dumating sa parehong antas.

Basahin ang File sa Bash

Sa bash, maaari mong basahin ang mga nilalaman ng isang file sa maraming paraan. Sa halimbawang ito ng bash loop, babasahin namin ang mga nilalaman ng file sa pamamagitan ng filename. Maaari naming gamitin ang sumusunod na script upang basahin ang file sa bash:

#!/bin/bash
echo 'Ang nilalaman ng inilagay na file ay:'
habang
basahin linya
gawin
echo $linya
tapos na < ~Mga dokumento / Linuxhint.txt

Pagkatapos patakbuhin ang script sa itaas, maaari mong basahin ang buong nilalaman ng ipinasok na file.

Pagsusulat sa isang File

Maaari mong gamitin ang mga loop sa script upang i-edit ang isang file mula mismo sa terminal. Halimbawa, kung mayroon kaming txt file na 'Example.txt,' at gusto naming magdagdag ng ilang impormasyon, maaari naming gamitin ang sumusunod na script:


Kung patakbuhin mo ang script sa itaas, hihilingin sa iyo na ilagay ang mga detalye:


Kapag naipasok mo na ang mga detalye, mangyaring CTRL + D upang i-save ang file at CTRL + Z upang matagumpay na matapos ang proseso.

Break at Continue Statement Loop sa Bash

Sa bash, maaari mong ipagpatuloy ang iyong pahayag sa loop pagkatapos ng pahinga. Ang pahayag ng break ay lumabas sa loop at pagkatapos ay ipapasa ang kontrol sa susunod na ibinigay na pahayag. Magsisimula ang numero ng pag-ulit pagkatapos na malaktawan ang kasalukuyang pag-ulit na may parehong pahayag na magpatuloy.

#!/bin/bash
sa isa = 16
hanggang mali
gawin
( ( sa isa-- ) )
kung [ [ $num -eq 13 ] ]
pagkatapos
magpatuloy
elif [ [ $num - ang 4 ] ]
pagkatapos
pahinga
maging
echo 'LinuxHint= $num '
tapos na

Sa sumusunod na script ng bash, makikita mo na kapag ang 'num' ay katumbas ng 13, nilalaktawan nito ang natitirang bahagi ng loop body at tumalon sa susunod na pag-ulit. Katulad nito, masisira ang loop kapag ang 'num' ay mas mababa sa o katumbas ng 4.


Ipinapakita ng script sa itaas na ang loop ay nagsisimula sa 15, break sa 13, at magpapatuloy hanggang 5.

Pagkalkula ng Average sa Bash

Maaari mong kalkulahin ang average sa pamamagitan ng pagpapatakbo ng script sa isang bash loop. Dito, maaaring kalkulahin ng user ang average ng mga numero sa loob ng tinukoy na hanay. Kinakalkula ng sumusunod na script ang average ng ibinigay na input ng user.

#!/bin/bash
mga marka = '0'
AVERAGE = '0'
SUM = '500'
SA ISA = '5'
habang totoo ; gawin
echo -n 'Ilagay ang iyong mga marka o pindutin ang 'q' upang i-abort ' ; basahin mga marka;
kung ( ( ' $marks ' < '0' ) ) || ( ( ' $marks ' > '100' ) ) ; pagkatapos
echo 'Pakilagay ang iyong mga marka'
elif [ ' $marks ' == 'q' ] ; pagkatapos
echo 'Ang average na mga marka ay: $AVERAGE %'
pahinga
iba pa
SUM =$ [ $SUM + $marks ]
SA ISA =$ [ $NUM + 1 ]
AVERAGE =$ [ $SUM / $NUM ]
maging
tapos na

Kung ang input ay wala sa saklaw, isang mensahe ay naka-print na 'Pakilagay ang iyong mga marka.' Kapag pinindot ng user ang 'q' pagkatapos ipasok ang lahat ng mga marka, kinakalkula ng script ang tinatayang average ng lahat ng mga numerong ipinasok.

Kapag ang script sa itaas ay tumakbo, ang iyong output ay magiging katulad nito.

Basahin ang Command-Line Argument sa Bash

Sa bash, maaari mong basahin ang mga argumento ng solong command-line gamit ang mga loop. Ini-print ng script ang mga na-format na halaga ng argumento. Nagpapatakbo kami ng mga argumento ng command line sa bash gamit ang isang while loop sa sumusunod na script. Sa pamamagitan nito, ipi-print mo ang value na nagpapasa sa argument value valid option sa tulong ng isang command.

#!/bin/bash
habang getopts N:F:M: OPT
gawin
kaso ' ${OPT} '
sa
N ) pangalan = ${OPTARG} ;;
F ) pangalan ng Ama = ${OPTARG} ;;
M ) pangalan ng ina = ${OPTARG} ;;
* ) echo 'Invalid'
labasan 1 ;;
esac
tapos na
printf 'Pangalan: $pangalan \n Pangalan ng Ama: $pangalan ng ama \n Pangalan ng ina: $inang pangalan \n '

Kaya, maaari mong i-print ang na-format na mga halaga ng argumento sa output sa pamamagitan ng pagpapatakbo ng script sa itaas sa isang bash.

Pagbabalot

Kaya ito ang maikling impormasyon sa 10 cool at kahanga-hangang mga halimbawa ng bash loop na maaari mong matutunan. Gumamit kami ng iba't ibang uri ng mga loop upang madaling makagawa ng interactive na script. Bukod dito, ipinaliwanag din namin ang mga pangunahing diskarte na ginamit sa mga halimbawa sa itaas. Kung mayroon kang malalim na mga detalye tungkol sa mga loop sa bash, mangyaring bisitahin ang aming opisyal na website upang malaman ang higit pa.