Yuav ua li cas sau ib daim FAIS "rau" Loop

Yuav ua li cas siv lub BASH "rau" lub voj nyob rau hauv lub plhaub phom plhaub

KAB MOB (uas yog rau Bourne dua Plhaub Plhaub) yog ib hom lus siv los ntawm ntau lub tshuab Linux thiab UNIX-raws li.

Koj tuaj yeem khiav BASH cov lus txib hauv lub davhlau ya dav hlau tom qab ib qho ntawm koj los yog koj ntxiv tau cov lus txib rau ib phau ntawv los ua cov ntawv plhaub.

Qhov zoo tshaj plaws txog kev sau ntawv plhaub ntawv yog tias koj tuaj yeem khiav lawv rov ua dua. Piv txwv li xav seb koj xav kom ntxiv ib tus neeg siv rau ib qho twg, tsim lawv cov kev tso cai thiab tswj xyuas lawv qhov chaw pib. Koj tuaj yeem sau cov lus txib ntawm ib daim ntawv thiab khiav lawv thaum koj ntxiv cov neeg siv tshiab lossis koj tuaj yeem sau ib tsab ntawv thiab tsuas xeem tsis dhau rau hauv tsab ntawv ntawd.

Cov hom lus xws li BASH muaj qhov programming zoo sib xws li lwm hom lus. Piv txwv li, koj tuaj yeem siv kev ntshuam tsis zoo los txais cov tswv yim los ntawm cov keyboard thiab muab cia li hloov. Koj tuaj yeem tau txais tsab ntawv los ua ib qho kev nqis tes ua raws li tus nqi ntawm qhov tsis muaj peev xwm .

Ib feem tseem ceeb ntawm cov programming thiab scripting lus yog rab peev xwm los khiav tib txoj cai dua ib zaug.

Muaj ntau txoj hauv kev los mus hais dua txoj cai (tseem hu ua loops). Hauv phau ntawv qhia no, koj yuav tsum qhia tias yuav sau li cas rau "rau" lub voj.

Ib qho rau lub voj rov qab dua ib seem ntawm qhov chaws mus dua. Lawv yuav pab tau kom cov lus txib kom khiav mus txog thaum muaj kev mob tshwj xeeb, tom qab uas lawv yuav nres.

Hauv phau ntawv qhia no, koj yuav tsum tau qhia txog tsib txoj hauv kev siv lub voj hauv tsab ntawv BASH.

Ua Ntej Pib

Ua ntej koj pib nrog lub voj kev ua piv txwv, koj yuav tsum qhib qhov chaw dav hlau thiab ua raws li cov kauj ruam nram no:

  1. Sau ntawv mus rau mkdir scripts ( kawm ntxiv txog mkdir nov )
  2. Sau ntawv cd scripts (qhov no hloov cov directory rau cov ntawv sau )
  3. Sau nano examplen.sh (qhov twg n yog tus piv txwv koj ua haujlwm rau)
  4. Sau tus ntawv
  5. Nias CTRL + O kom txuag tau thiab CTRL + X tawm
  6. Khiav bash examplen.sh (dua, nrog n yog tus piv txwv koj ua haujlwm nrog)

Yuav ua li cas mus loop los ntawm ib daim ntawv teev

#! / bin / bash
rau tus naj npawb hauv 1 2 3 4 5
ua
nawj $ tooj
ua li cas
tawm 0

Kev NTSHUAB ntawm txoj kev siv "rau" loops yog txawv me ntsis rau txoj kev lwm hom ntawv thiab cov lus scripting lis "rau" loops. Cia peb ua txhaum tsab ntawv ...

Hauv kev sib tsoo "rau" txhua lub voj voog, cov nqe lus ntawm kev ua thiab ua tiav yog ua ib zaug rau txhua yam hauv daim ntawv.

Hauv qhov piv txwv saum toj no, daim ntawv yog txhua yam uas tau los tom qab lo lus hauv (ie 1 2 3 4 5).

Txhua lub sij hawm lub voj iterates, tus nqi tom ntej hauv daim ntawv no muab tso rau hauv qhov txawv kuj teev tom qab lo lus "rau" . Hauv cov voj saum toj no, qhov txawv kuj yog hu ua zauv .

Lus hauv no teb Cov lus hais siv lo lus siv rau cov ncauj lus tso tawm cov ntaub ntawv rau qhov kev tshuaj ntsuam.

Yog li, qhov piv txwv no yuav siv cov naj npawb 1 txog 5 thiab muab lawv ib qho los ntawm ib qho rau qhov screen:

Yuav ua li cas rau Loop ntawm Lub Pib thiab Kawg Point

Qhov teeb meem nrog rau cov piv txwv saum toj no yog tias yog tias koj xav ua ib daim ntawv loj (hais 1 txog 500), nws yuav siv sij hawm hnub nyoog rau tag nrho cov lej hauv thawj qhov chaw.

Qhov no coj peb mus rau tus thib ob piv txwv uas pom tau hais tias yuav ua li cas qhia ib pib thiab qhov kawg:

#! / bin / bash
rau cov naj npawb hauv {1..10}
ua
echo "$ tus naj npawb"
ua li cas
tawm 0

Cov cai no yeej zoo ib yam. Qhov tseem ceeb tom qab lo lus " hauv" ua kom tiav daim ntawv teev tseg los ntawm thiab txhua tus nqi hauv daim ntawv teev npe tso rau hauv qhov txawv (piv txwv li tus naj npawb), thiab txhua zaus lub voj tshuam, cov nqe lus ntawm ua thiab ua tiav.

Lub ntsiab qhov txawv yog txoj kev sau ua. Lub tsho khuam {} yeej qhia tau ntau yam, thiab qhov ntau, qhov no, yog 1 mus rau 10 (ob qho tag nrho nyias qhov pib thiab qhov kawg ntawm qhov khwv yees).

Qhov piv txwv, yog li ntawd, sau los ntawm txhua tus naj npawb ntawm 1 thiab 10 thiab muab cov naj npawb rau qhov ntsuas raws li nram no:

Tib lub voj yuav tau sau li no, nrog syntax zoo tib yam rau tus thawj piv txwv:

rau tus naj npawb hauv 1 2 3 4 5 6 7 8 9 10

Yuav Hla Huv Ntaus Hauv Nrawm

Tus piv txwv yav dhau los tau qhia txog kev voj voog ntawm qhov pib thiab qhov kawg, ces tam sim no peb yuav pom tias yuav hle cov lej hauv qhov ntau.

Xav tias koj xav tau lub voj ntawm 0 thiab 100 tiam sis tsuas yog qhia txhua tus thib kaum. Tsab ntawv nram qab no qhia tau hais tias yuav ua li cas xwb:

#! / bin / bash
rau cov najnpawb hauv {0..100..10}
ua
echo "$ tus naj npawb"
ua li cas
tawm 0

Cov cai no yeej zoo ib yam. Nws muaj ib daim ntawv teev, ib qho txawv, thiab ib co ntawm cov lus tau muab los ntawm ua thiab ua tiav . Daim ntawv no lub sij hawm zoo li no: {0..100.10}.

Thawj tus naj npawb yog 0 thiab tus naj npawb kawg yog 100. Tus zauv thib peb (10) yog tus naj npawb ntawm cov khoom nyob rau hauv daim ntawv uas nws yuav hla mus.

Qhov piv txwv saum toj no, yog li ntawd, qhia cov zis nram qab no:

Ib tug Ntaus Ntau Tshawb Nrhiav Nrhiav Ntxees

Txoj kev sib sau ua ke ntawm BASH yog qhov txawv me ntsis thaum piv rau lwm hom lus programming.

Koj tuaj yeem, sau ntawv rau ib lub voj hauv ib hom style C programming, zoo li no:

#! / bin / bash
rau (naj npawb = 1; zauv <100; + + +))
{
yog hais tias (($ naj npawb% 5 == 0))
ces
ncha "tus naj npawb $ yog divisible by 5"
nkaus
}
tawm 0

Lub voj pib los ntawm qhov ntaus tus zauv (variable) rau 1 (tus lej = 1 ). Cov voj yuav khaws cia kom qis thaum tus nqi naj npawb tsawg tshaj 100 ( naj npawb <100 ). Tus nqi ntawm cov naj npawb hloov los ntawm kev ntxiv 1 mus rau nws tom qab txhua lub iteration ( naj npawb ++ ).

Txhua yam ntawm cov hlua caj dab yog ua los ntawm txhua lub iteration ntawm lub voj.

Lub ntsis ntawm cov zag tshev tshev tawm tus nqi ntawm tus nab npawb , faib nws los ntawm 5, thiab muab qhov sib txawv rau 0. Yog hais tias qhov seem ntawm 0 ces tus naj npawb yog faib los ntawm 5 thiab tom qab ntawd ces muab tso rau ntawm qhov screen.

Piv txwv li:

Yog tias koj xav hloov cov kauj ruam ntawm tus iteration koj tuaj yeem kho cov naj npawb ++ naj npawb ntxiv = naj npawb + 2 , naj npawb = naj npawb + 5 , los sis naj npawb = naj npawb + 10 thiab lwm yam.

Qhov no tuaj yeem txo kom tsawg zog + = 2 los sis naj npawb + = 5 .

Ib qho piv txwv

Rau loops ua ntau dua li cov npe ntawm cov lej. Koj yeej siv tau qhov tso tawm ntawm lwm cov lus txib raws li daim ntawv teev npe.

Cov qauv hauv qab no qhia tau hais tias yuav ua li cas hloov audio files ntawm MP3 rau WAV :

#! / bin / bash

Cov npe nyob rau hauv qhov ua piv txwv no yog txhua cov ntaub ntawv nrog rau cov kev ncua hauv MP3 nyob rau hauv daim nplaub tshev tam sim no thiab qhov txawv kuj yog ib qho ntaub ntawv .

Cov mpg tau hais kom ua cov ntaub ntawv MP3 rau WAV. Txawm li cas los xij, tej zaum koj yuav tau siv qhov no los siv koj thawj tus thawj tswj xyuas thawj zaug.