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 par cilpa atkal atkārto noteiktu sadaļu kodu atkal un atkal. 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:
-
Ievadiet mkdir skripti (Uzziniet vairāk par mkdir šeit).
-
Ievadiet cd skripti (tas maina direktoriju uz skripti ).
-
Ievadiet nano examplen.sh (kur n ir piemērs, ar kuru jūs strādājat).
-
Ievadiet skriptu.
-
Nospiediet CTRL + O lai saglabātu un CTRL + X iziet.
-
Palaist bash examplen.sh (atkal ar n kas ir piemērs, ar kuru jūs strādājat).
Kā cikls ar sarakstu
#! / bin / bashfor numurs 1 2 3 4 5doecho $ numberdoneexit 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. In BASH "for" loop all, paziņojumi starp dari un pabeigts tiek veiktas vienreiz par katru vienumu sarakstā. Iepriekš minētajā piemērā saraksts ir viss, kas nāk pēc vārda in (t.i., 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 numurs . 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: 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 / bashfor numurs {1..10} doecho "$ number" doneexit 0
Noteikumi būtībā ir vienādi. Vērtības pēc vārda " in " izveido sarakstu, lai atkārtotu, un katra sarakstā esošā vērtība tiek ievietota mainīgajā (t.i., numurs), un katru reizi, kad cilpa atkārtojas, starp dari un pabeigts tiek veiktas. 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 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 / bashfor numurs (0..100..10) doecho "$ number" doneexit 0
Noteikumi būtībā ir vienādi. Ir saraksts, mainīgais un pārskatu kopums, kas jāveic starp dari un pabeigts . Š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: 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 / bashfor ((skaits = 1; numurs <100; numurs ++)) {if (($ number% 5 == 0)) thenecho "$ numurs ir dalāms ar 5" fi} izeja 0
Cikls sākas, iestatot mainīgo skaitu uz 1 (skaits = 1 ) Cikls turpinās atkārtot, bet skaitļa vērtība ir mazāka par 100 ( skaitlis <100 ) Vērtība numurs mainot, pievienojot 1 pēc katras iterācijas ( numurs ++ ). Viss starp cirtainajiem balsteņiem tiek veikts katrā cikla atkārtojumā. Bitu skaits starp bikštēm pārbauda a numurs , 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āpienu, varat mainīt numuru ++ sekciju numurs = numurs + 2 , numurs = numurs + 5 , vai numurs = numurs + 10 utt. To var vēl vairāk samazināt līdz numurs + = 2 vai numurs + = 5 . 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 / bashpar failu ./*.mp3dompg -w ./wavs/"${file}".wav "$ file" izdarīts
Šajā piemērā saraksts ir katrs fails ar paplašinājumu .MP3 pašreizējā mapē, un mainīgais ir fails . The mpg komanda pārveido MP3 failu WAV. Tomēr jums, visticamāk, vispirms ir jāinstalē tas, izmantojot pakotņu pārvaldnieku.
Kā cikls starp sākuma un beigu punktu
Kā izlaist numuru diapazonā
Vairāk tradicionāls cikls meklē
Praktiskais piemērs