Kā uzrakstīt BASH "par" cilpai

Kā izmantot cilni BASH "for" cilpa skriptiem

BASH (kas nozīmē Bourne Again Shell) ir skriptu valoda, ko izmanto lielākā daļa Linux un UNIX bāzētu operētājsistēmu.

Jūs varat palaist BASH komandas termināla logā vienu pēc otra vai arī pievienot komandas teksta failam, lai izveidotu čaulas skriptu.

Lieliska lieta par čaulas skriptu rakstīšanu ir tā, ka jūs varat tos palaist atkal un atkal. Piemēram, iedomājieties, ka jums ir jāpievieno kāds lietotājs sistēmai, jānosaka viņu tiesības un jāuztur viņu sākuma vide. Jūs varat vai nu pierakstīt komandas uz papīra un palaist tos, pievienojot jaunus lietotājus, vai arī rakstīt vienu skriptu un vienkārši pārsūtīt parametrus uz šo skriptu.

Scripting valodām, piemēram, BASH, ir līdzīgas programmēšanas konstrukcijas kā citas valodas. Piemēram, jūs varat izmantot importa parametrus, lai saņemtu ievadi no tastatūras un saglabātu tos kā mainīgos lielumus. Pēc tam jūs varat iegūt skriptu, lai veiktu noteiktu darbību, pamatojoties uz ievades parametru vērtību .

Jebkura programmēšanas un skriptu valodas galvenā daļa ir iespēja palaist to pašu koda gabalu atkal un atkal.

Ir vairāki veidi, kā atkārtot kodu (pazīstams arī kā cilpas). Šajā rokasgrāmatā jums tiks parādīts, kā rakstīt cilni "par".

A cilpa vairākkārt atkārtojas noteiktā koda sadaļā. Viņi ir noderīgi, lai virkne komandu varētu turpināt darboties, līdz tiek izpildīts konkrēts nosacījums, pēc kura viņi pārtrauks.

Šajā rokasgrāmatā jums tiks parādīti pieci veidi, kā izmantot cilni BASH skriptā.

Pirms sākat darbu

Pirms sākat izmantot cilpu piemērus, jums jāatver termināla logs un rīkojieties šādi:

  1. Ievadiet mkdir skriptus ( uzziniet vairāk par mkdir šeit )
  2. Ievadiet cd skriptus (tas maina direktoriju skriptiem )
  3. Ievadiet nano examplen.sh (kur n ir piemērs, ar kuru jūs strādājat).
  4. Ievadiet skriptu
  5. Nospiediet CTRL + O, lai saglabātu, un CTRL + X, lai izietu
  6. Palaidiet bash examplen.sh (atkal, ja n ir piemērs, ar kuru strādājat)

Kā cikls ar sarakstu

#! / bin / bash
par skaitli 1 2 3 4 5
dari
echo $ numurs
pabeigts
iziet no 0

BASH veids, kā izmantot "cilpas", ir nedaudz atšķirīgs no tā, kā lielākā daļa citu programmēšanas un skriptu valodu darbojas "cilpām". Let's sadalīt skriptu uz leju ...

Visās cilpas BASH "for" gadījumā paziņojumi starp do un done notiek vienreiz par katru vienumu sarakstā.

Iepriekš minētajā piemērā saraksts ir viss, kas nāk pēc vārda (ti, 1 2 3 4 5).

Katru reizi, kad cilpa atkārtojas, nākamā vērtība sarakstā tiek ievietota mainīgajā, kas norādīts pēc vārda "par" . Iepriekš minētajā cilpā mainīgais tiek saukts par numuru .

Echo paziņojums tiek izmantots, lai ekrānā parādītu informāciju.

Tādēļ šajā piemērā tiek ņemti skaitļi no 1 līdz 5 un tie tiek parādīti ekrānā pa vienam:

Kā cikls starp sākuma un beigu punktu

Problēma ar iepriekš minēto piemēru ir tāda, ka, ja vēlaties apstrādāt lielāku sarakstu (teiksim 1 līdz 500), vispirms jāievada visi numuri.

Tas parādīs mūs otrajā piemērā, kas parāda, kā norādīt sākuma un beigu punktu:

#! / bin / bash
par skaitli {1..10}
dari
echo "$ number"
pabeigts
iziet no 0

Noteikumi būtībā ir vienādi. Vērtības pēc vārda " in" izveido sarakstu, lai to virzītu, un katra sarakstā esošā vērtība tiek ievietota mainīgajā (ti, skaitlī), un katru reizi, kad cilpa atkārtojas, tiek izpildīti apgalvojumi starp do un done .

Galvenā atšķirība ir veids, kā tiek izveidots saraksts. Līstošās skavas {} būtībā apzīmē diapazonu, un šajā gadījumā diapazons ir no 1 līdz 10 (divi punkti atsevišķi diapazona sākumam un beigām).

Tādējādi šis piemērs skar katru skaitli no 1 līdz 10 un izsauc numuru uz ekrānu šādi:

Tāda pati cilpa varētu būt rakstīta ar šo, ar sintaksi, kas ir identiska pirmajam piemēram:

par numuru 1 2 3 4 5 6 7 8 9 10

Kā izlaist numuru diapazonā

Iepriekšējais piemērs parādīja, kā cilpa starp sākumu un beigu punktu, tāpēc tagad mēs aplūkosim to, kā izslēgt skaitļus diapazonā.

Iedomājieties, ka vēlaties cilpa no 0 līdz 100, bet tikai parādīt katru desmito numuru. Sekojošais skripts parāda, kā tieši to izdarīt:

#! / bin / bash
par skaitli {0..100..10}
dari
echo "$ number"
pabeigts
iziet no 0

Noteikumi būtībā ir vienādi. Ir saraksts, mainīgais un pārskatu kopums, kas jāveic starp darījumu un pabeigto . Šonedēļ šis saraksts izskatās šādi: {0..100..10}.

Pirmais skaitlis ir 0, bet beigu skaitlis ir 100. Trešais numurs (10) ir to vienumu skaits, kas sarakstā tiks izlaisti.

Tādējādi iepriekš minētajā piemērā ir redzama šāda izlaide:

Vairāk tradicionāls cikls meklē

BASH rakstīšanas veids cilpas ir nedaudz dīvains, salīdzinot ar citām programmēšanas valodām.

Tomēr jūs varat rakstīt par cilpu līdzīgā stilā C programmēšanas valodā, piemēram, šo:

#! / bin / bash
par ((skaits = 1, numurs <100, numurs ++))
{
ja (($ numurs% 5 == 0))
tad
echo "$ numurs ir sadalāms par 5"
fi
}
iziet no 0

Cikls sākas, iestatot mainīgo skaitu uz 1 (skaitlis = 1 ). Cikls turpinās atkārtot, bet skaitļa vērtība ir mazāka par 100 ( skaitlis <100 ). Numura vērtību vērtība mainās, pievienojot tai 1 pēc katras iterācijas ( skaitlis ++ ).

Viss starp cirtainajiem balsteņiem tiek veikts katrā cikla atkārtojumā.

Bits starp bikštēm pārbauda skaitļa vērtību, dala to ar 5 un salīdzina atlikumu ar 0. Ja atlikums ir 0, tad šis skaitlis ir dalāms ar 5 un pēc tam tiek parādīts ekrānā.

Piemēram:

Ja vēlaties mainīt iterācijas pakāpiena izmēru, varat mainīt numuru ++ sekciju, lai tas būtu numurs = numurs + 2 , numurs = numurs + 5 , vai numurs = numurs + 10 utt.

To var vēl vairāk samazināt līdz skaitlim + = 2 vai skaitlim + = 5 .

Praktiskais piemērs

Par cilpām var veikt vairāk nekā retranslētu skaitļu sarakstus. Jūs faktiski var izmantot citu komandu izvadi kā sarakstu.

Šis piemērs parāda, kā konvertēt audio failus no MP3 uz WAV :

#! / bin / bash

Šajā piemērā saraksts ir katrs fails ar .MP3 paplašinājumu pašreizējā mapē, un mainīgais ir fails .

Mpg komanda pārveido MP3 failu WAV. Tomēr jums, visticamāk, vispirms ir jāinstalē tas, izmantojot pakotņu pārvaldnieku.