Unsaon Pagsulat Usa ka BASH "alang sa" Loop

Sa unsa nga paagi sa paggamit sa BASH "alang" loop sa shell scripts

Ang BASH (nga nagtumong sa Bourne Again Shell) usa ka pinulongan nga pang-script nga gigamit sa kadaghanan nga mga sistema sa operating Linux ug UNIX.

Mahimo nimong magpadagan ang BASH commands sa sulod sa usa ka terminal nga window usa sa usag usa o mahimo nimong idugang ang mga comma sa usa ka text file aron makagamag usa ka shell script.

Ang talagsaon nga butang mahitungod sa pagsulat sa mga script sa mga kabhang mao nga mahimo nimo kini pag-usab-usab. Pananglitan huna-huna nga kinahanglan nimo dugangan ang usa ka tiggamit sa usa ka sistema, itakda ang ilang mga permiso ug pagdumala sa ilang sinugdanan nga palibot. Mahimo nimo isulat ang mga sugo sa usa ka piraso nga papel ug padaganon kini samtang magdugang ka og bag-ong mga tiggamit o mahimo ka magsulat og usa ka script ug ipasa ang mga parameter sa script.

Ang mga pinulongan nga Scripting sama sa BASH adunay managsama nga pagmugna sa mga programa sama sa ubang mga pinulongan. Pananglitan, mahimo nimo gamiton ang mga parameter sa pag- import aron makakuha og input gikan sa keyboard ug i-store kini isip mga variables. Mahimo nimong makuha ang script aron sa pagbuhat sa usa ka buhat nga gibase sa bili sa input parameters .

Ang usa ka importante nga bahin sa bisan unsang programming ug scripting nga pinulongan mao ang abilidad sa pagdagan sa sama nga piraso sa code balik-balik.

Adunay ubay-ubay nga mga paagi sa pagsubli sa code (gitawag usab nga mga loops). Niini nga giya, ipakita kanimo unsaon pagsulat ang usa ka "alang" loop.

Ang usa alang sa loop nagsubli sa usa ka bahin sa code sa balik-balik. Kini mapuslanon aron ang usa ka serye sa mga sugo makapadayon sa pagdagan hangtud nga ang usa ka partikular nga kondisyon matuman, ug human niana sila mohunong.

Niini nga giya, ipakita kanimo ang lima ka mga paagi sa paggamit sa sulod sa usa ka BASH script.

Sa wala pa magsugod

Sa dili ka pa magsugod sa mga panig-ingnan alang sa mga lingkuranan, kinahanglan mo nga buksan ang usa ka terminal window ug sunda kini nga mga lakang:

  1. Pagsulod sa mga script sa mkdir ( pagkat-on og dugang mahitungod sa mkdir dinhi )
  2. Pagsulod sa mga script sa cd (kini nag- usab sa direktoryo sa mga script )
  3. Pagsulod sa nano examplen.sh (diin n ang panig-ingnan nga imong ginabuhat)
  4. Pagsulod sa script
  5. Tuploka ang CTRL + O aron maluwas ug CTRL + X nga mogawas
  6. Himoa ang bash examplen.sh (pag-usab, uban sa n ang panig-ingnan nga imong ginabuhat)

Unsaon sa Loop pinaagi sa Lista

#! / bin / bash
alang sa gidaghanon sa 1 2 3 4 5
buhata
echo $ number
nahimo
exit 0

Ang BASH nga paagi sa paggamit sa "for" loops medyo lahi sa pamaagi nga ang kadaghanan sa uban pang mga programming ug mga pinulongan nga pang-eskuylahan maoy "mogamit" sa mga galong. Atong balihon ang script ...

Sa usa ka BASH "alang sa" tanan, ang mga pahayag tali sa nahimo ug nahimo gipahigayon sa makausa alang sa matag aytem sa lista.

Sa pananglitan sa ibabaw, ang lista mao ang tanan nga moabut human sa pulong sa (ie 1 2 3 4 5).

Sa matag higayon nga ang loon iterates, ang sunod nga bili sa listahan gisal-ot ngadto sa variable nga gilatid human sa pulong nga "for" . Sa hugpong sa ibabaw, ang variable nga gitawag nga numero .

Ang echo nga pahayag gigamit aron ipakita ang impormasyon ngadto sa screen.

Busa, kini nga pananglitan nagkinahanglan sa mga numero 1 hangtud sa 5 ug nag-output kanila usa-usa ngadto sa screen:

Unsaon sa Pag-Loob Tali sa usa ka Start and End Point

Ang kasamok sa mga pananglitan sa ibabaw mao nga kung gusto nimo iproseso ang usa ka mas dako nga lista (isulti ang 1 ngadto sa 500), gikinahanglan ang edad aron i-type ang tanan nga numero sa una nga lugar.

Kini nagdala kanato ngadto sa ikaduha nga panig-ingnan nga nagpakita kon unsaon pagtino ang usa ka pagsugod ug katapusan nga punto:

#! / bin / bash
alang sa gidaghanon sa {1..10}
buhata
echo "$ number"
nahimo
exit 0

Ang mga lagda parehas ra. Ang mga mithi nga human sa pulong nga " in" naglangkob sa lista aron mausab pinaagi ug ang matag bili diha sa lista gibutang sa variable (ie numero), ug sa matag higayon nga ang balutan makit-an, ang mga pahayag tali sa gibuhat ug nahimo gipahigayon.

Ang nag-unang kalainan mao ang paagi nga naporma ang lista. Ang curly brackets {} nagpasabot sa usa ka gidak-on, ug ang gidak-on, sa niini nga kaso, mao ang 1 ngadto sa 10 (ang duha ka mga tulbok nga magbulag sa pagsugod ug katapusan sa usa ka hanay).

Busa, kini nga pananglitan nag-agi sa matag numero nga tali sa 1 ug 10 ug nagpagawas sa gidaghanon sa screen ingon sa mosunod:

Ang susama nga lungag mahimo nga gisulat nga sama niini, nga adunay susama nga syntax sa unang pananglitan:

alang sa gidaghanon sa 1 2 3 4 5 6 7 8 9 10

Kon Unsaon Pagtangtang sa mga Numero sa Kabukiran

Ang naunang pananglitan nagpakita kon unsaon sa paglihok tali sa usa ka pagsugod ug katapusan nga punto, busa karon atong tan-awon kon unsaon paglaktaw ang mga numero sa sulod.

Hunahunaa nga gusto ka nga maglihok tali sa 0 ug 100 apan ipakita lamang ang matag ikanapulo nga numero. Ang mosunod nga script nagpakita kon unsaon pagbuhat niana:

#! / bin / bash
alang sa numero sa {0..100..10}
buhata
echo "$ number"
nahimo
exit 0

Ang mga lagda parehas ra. Adunay usa ka lista, usa ka variable, ug usa ka hugpong sa mga pahayag nga ipahigayon tali sa gibuhat ug gibuhat . Ang lista niini nga panahon ingon niini: {0..100..10}.

Ang unang numero mao ang 0 ug ang numero sa katapusan mao ang 100. Ang ikatulo nga numero (10) mao ang gidaghanon sa mga butang sa listahan nga kini molaktaw.

Busa, sa ibabaw nga panig-ingnan, gipakita ang mosunod nga output:

Usa ka Mas Tradisyonal nga Pagtan-aw Kay Loop

Ang BASH nga paagi sa pagsulat alang sa mga loops gamay ra kaayo kon itandi sa ubang mga pinulongan sa programming.

Mahimo nimo, bisan pa, pagsulat alang sa loop sa susama nga estilo sa C programming language, sama niini:

#! / bin / bash
kay ((numero = 1; gidaghanon <100; numero + +))
Ang
kung (($ number% 5 == 0))
unya
echo "$ nga gidaghanon sa 5"
fi
}
exit 0

Ang loop magsugod pinaagi sa pag-set ang variable number ngadto sa 1 (numero = 1 ). Ang lungag magpabilin nga iterating samtang ang bili sa numero usa ka ubos sa 100 ( gidaghanon <100 ). Ang bili sa gidaghanon nga mga kausaban pinaagi sa pagdugang 1 niini pagkatapos sa matag pag-usab ( gidaghanon ++ ).

Ang tanan sa tunga sa curly braces gipahigayon pinaagi sa matag pag-ulan sa loop.

Ang bit sa tunga sa mga kuptanan nagsusi sa bili sa usa ka numero , gibahin kini sa 5, ug gitandi ang nahibilin sa 0. Kung ang nahibilin mao ang 0 nan ang gidaghanon mabahin sa 5 ug unya gipakita sa screen.

Pananglitan:

Kung gusto nimong usbon ang lakang nga gidak-on sa pag-usab mahimo nimo pag-usab ang gidaghanon + + seksyon nga numero = number + 2 , number = number + 5 , o number = number + 10 ug uban pa.

Mahimo kining dugang nga mahimong numero + = 2 o numero + = 5 .

Usa ka Praktikal nga Panig-ingnan

Kay ang mga galong makahimo labaw pa kaysa mga iterate list sa mga numero. Mahimo mo gamiton ang aktwal nga output sa ubang mga sugo ingon nga listahan.

Ang mosunod nga pananglitan nagpakita kon unsaon pag-convert sa mga file sa audio gikan sa MP3 ngadto sa WAV :

#! / bin / bash

Ang lista niini nga pananglitan mao ang matag file nga adunay .MP3 extension sa kasamtangan nga folder ug ang variable usa ka file .

Ang mando sa mpg nag-convert sa MP3 file ngadto sa WAV. Bisan pa niana, tingali kinahanglan nga i-install kini gamit ang imong package manager una.