Ako používať BASH pre Loop



Vyskúšajte Náš Nástroj Na Odstránenie Problémov

Jedným z najzákladnejších trikov pri vytváraní bash skriptov je vytvorenie slučky, aby ste mohli nechať určitú úlohu vykonať niekoľkokrát automaticky. Smyčka nakoniec dosiahne vopred určený testovací stav a náhle sa prestane vykonávať. Smyčky ako tieto budú perfektne fungovať v bashe na Linuxe a macOS, rovnako ako v bashe shell vo Windows 10 a dokonca aj v rôznych shelloch vo FreeBSD. Prirodzene môžete do ľubovoľnej slučky napísať ľubovoľný príkaz, ktorý uprednostňujete, a udržať akýkoľvek proces v chode. Aj keď napíšeme niekoľko mimoriadne jednoduchých cyklov, tieto zručnosti môžete použiť na tvorbu všetkých druhov skriptov, ktoré by ste chceli.



Existuje mnoho spôsobov, ako začať písať skript, ale pre túto diskusiu budeme predpokladať, že ste otvorili príkazový riadok buď vyhľadaním terminálu v pomlčke, kliknutím na neho v ponukách KDE, MATE, LX alebo Whisker alebo súčasným podržaním klávesov Ctrl, Alt a T. Aj keď budeme diskutovať o editoroch vi / vim a nano, problém, ktorý editor použijete, je celkom osobný a mohli by ste pracovať s čímkoľvek, s čím sa budete cítiť dobre.



Metóda 1: Smyčka until

Snáď najzákladnejšou slučkou v bashe je smyčka do. Bude pokračovať v vykonávaní príkazov, kým sa vami nastavená podmienka testu nestane pravdivou. Predpokladáme, že ste na otvorenie neexistujúceho súboru s názvom do.sh použili nano alebo vi a ste pripravení vložiť doň nový text. Urobíme vo vašom termináli niečo, čo sa počíta do 20, aby to bolo na začiatku ľahké.



Začnite zadaním nasledujúcich výrazov:

#! / bin / bash

n = 0



do [$ n -gt 20]

robiť

ozvena $ n

((n ++))

hotový

Ak používate nano, uložte ho podržaním Ctrl a následným stlačením O a nakoniec X ukončite. Používatelia systému vi budú chcieť stlačiť klávesovú skratku escape, potom zadaním príkazu: wq uložte súbor a ukončite prácu.

Ďalší typ chmod + x untilLoop po výzve, aby bol spustiteľný, a potom zadajte ./untilLoop spustiť to. Po jeho spustení bude slučka pokračovať v tlači nových čísel na vašom termináli, kým sa premenná n nedostane na 20.

Mimochodom, prvý riadok hovorí vášmu prostrediu, ktorý shell sa má načítať pri práci s týmito skriptmi. Niektorí programátori odporúčajú používať iba #! / Bin / sh, aby ste sa ubezpečili, že váš skript dodržiava určité štandardy POSIX, ale tieto jednoduché skripty by nemali mať problém bežať na drvivej väčšine moderných systémov.

Metóda 2: Smyčka for

Smyčka for prezerá každú položku v danom zozname a potom vykoná danú skupinu príkazov v danom zozname. Vyrobíme taký, ktorý vytlačí niektoré názvy operačných systémov, ale nezabudnite znova, že s tým môžete robiť, ak chcete.

Typ buď nano forLoop alebo my forLoop na príkazovom riadku a začnite zadávať tento nasledujúci skript. Používatelia verzie vi budú musieť vstúpiť do režimu vkladania predtým, ako tak urobia.

#! / bin / bash

unices = „GNU / Linux FreeBSD OpenBSD NetBSD Solaris OpenIndiana Darwin HP-UX Minix“

pre unix v $ unices

robiť

echo $ unix

hotový

Uložte súbor znova pomocou metódy Ctrl + O a potom Ctrl + X v nano alebo Esc potom: metóda wq vo vi pred vydaním príkazu chmod + x forLoop aby bol vykonateľný. Keď to máte, spustite ho zadaním ./forLoop po výzve. Smyčka for núti príkaz echo postupne pracovať na každej z položiek v premennej unices. Tento zoznam môžete znova nahradiť ľubovoľným argumentom a nahradiť echo ľubovoľným príkazom na automatizáciu dlhých procesov.

Metóda 3: The while Loop

Začnite upravovať tretí súbor s názvom whileLoop pomocou nano, vi alebo podľa ľubovoľného iného editora, ktorý chcete použiť. Ak chcete radšej použiť grafický textový editor, môžete to urobiť aj v prípade ktoréhokoľvek z týchto projektov, ak je potrebné umiestniť súbor do rovnakého adresára, v ktorom pracujete z príkazového riadku. .

V tomto súbore budete chcieť pridať riadky:

#! / bin / bash

n = 0

while [$ n -le 20]

robiť

ozvena $ n

((n ++))

hotový

Uložte súbor rovnakým spôsobom, ako ste uložili ostatné súbory, a potom ukončite textový editor. Po ukončení zadajte príkaz chmod + x whileLoop aby ste ho mohli spustiť a potom spustiť ./whileLoop spustiť to. Uvidíte ten istý výstup, ktorý vyšiel zo skriptu untilLoop z prvej metódy, pretože počíta od 0 do 20 za viac ako pravdepodobne zlomok sekundy.

Toto je vynikajúca ukážka skutočnosti, že existuje viac ako jeden spôsob, ako robiť veci, kedykoľvek pracujete so slučkami týmto spôsobom. Aj keď to technicky nemožno urobiť zlým spôsobom, pravdepodobne narazíte na autorov skriptov, ktorí tvrdia, že by ste mali písať svoje skripty bližšie k tomu, ako veci robí programovací jazyk C. Alebo môžu iní navrhnúť, aby ste to nerobili. Úprimne povedané, existuje pravdepodobne veľa správnych spôsobov riešenia problému.

Po dokončení cvičení môžete svoje skripty odstrániť.

3 minúty prečítané