BASH (čo znamená Bourne Again Shell) je skriptovací jazyk používaný väčšinou operačného systému Linux a UNIX.
Môžete spustiť BASH príkazy v okne terminálu jeden po druhom alebo môžete pridať príkazy do textového súboru vytvoriť skript shell.
Skvelá vec pri písaní shell skriptov je, že ich môžete spustiť znova a znova. Predstavte si napríklad, že potrebujete pridať používateľa do systému, nastaviť jeho oprávnenia a spravovať jeho štartovacie prostredie. Môžete buď napísať príkazy na kus papiera a spustiť ich pri pridávaní nových používateľov, alebo môžete napísať jediný skript a len prejsť parametre do tohto skriptu.
Skriptovacie jazyky, ako napríklad BASH, majú podobné programovacie konštrukcie ako ostatné jazyky. Napríklad môžete použiť parametre importu, aby ste získali vstup z klávesnice a uložili ich ako premenné. Potom môžete skript vykonať určitú akciu založenú na hodnote vstupných parametrov.
Kľúčovou súčasťou každého programovacieho a skriptovacieho jazyka je schopnosť opakovane spustiť rovnaký kód.
Existuje niekoľko spôsobov, ako opakovať kód (tiež známy ako slučky). V tejto príručke sa zobrazí, ako napísať cyklus "pre".
pre slučka opakuje určitú časť kódu znova a znova. Sú užitočné, aby mohla zostať spustená séria príkazov, kým nie je splnená konkrétna podmienka, a potom sa zastavia.
V tejto príručke sa vám ukáže päť spôsobov, ako použiť slučku for v rámci skriptu BASH.
Skôr ako začnete
Skôr ako začnete s príkladmi slučky for, musíte otvoriť okno terminálu a postupujte podľa týchto krokov:
-
vstúpiť mkdir skripty (dozviete sa viac o mkdir tu).
-
vstúpiť cd skripty (zmena adresára na skripty ).
-
vstúpiť nano examplen.sh (kde n je príklad, na ktorom pracujete).
-
Zadajte skript.
-
lis CTRL + O uložiť a CTRL + X k východu.
-
beh bash examplen.sh (opäť s n ako príklad, s ktorým pracujete).
Ako načrtnúť zoznam
#! / bin / bashfor číslo v 1 2 3 4 5doecho $ numberdoneexit 0
Metóda BASH používania slučiek "for" sa trochu líši od spôsobu, akým väčšina iných programovacích a skriptovacích jazykov spracováva slučky "za". Skúsme skript. V BASH "pre" slučku všetky, vyhlásenia medzi robiť a hotový sa vykonávajú raz pre každú položku v zozname. Vo vyššie uvedenom príklade je zoznam všetko, čo príde po slove v (t.j. 1 2 3 4 5). Zakaždým, keď sa slučka opakuje, nasledujúca hodnota v zozname sa vloží do premennej zadanej za slovom "K" , Vo vyššie uvedenej smyčke sa nazýva premenná číslo . Označenie echo sa používa na zobrazenie informácií na obrazovke. Preto tento príklad má čísla 1 až 5 a ich výstupy jeden po druhom na obrazovku: Problém s vyššie uvedeným príkladom spočíva v tom, že ak chcete spracovať väčší zoznam (napríklad 1 až 500), bolo by vek, keby ste najskôr napísali všetky čísla. To nás privádza k druhému príkladu, ktorý ukazuje, ako určiť začiatočný a koncový bod: #! / bin / bashfor číslo v {1..10} doecho "$ number" doneexit 0
Pravidlá sú v podstate rovnaké. Hodnoty za slovom " v " vytvorte zoznam pre opakovanie a každá hodnota v zozname je umiestnená v premennej (t.j. číslo) a pokaždé, keď sa slučka opakuje, príkazy medzi robiť a hotový sú vykonávané. Hlavným rozdielom je spôsob vytvárania zoznamu. Zakrivené zátvorky {} v podstate označujú rozsah a rozsah je v tomto prípade 1 až 10 (dve bodky oddeľujú začiatok a koniec rozsahu). Tento príklad preto prechádza každým číslom medzi 1 a 10 a vyvedie číslo na obrazovku nasledovne: Tá istá slučka by mohla byť napísaná takto, so syntaxou identickou s prvým príkladom: pre číslo v 1 2 3 4 5 6 7 8 9 10 Predchádzajúci príklad ukázal, ako smyčka medzi začiatočným a koncovým bodom, a teraz sa pozrieme na to, ako preskočiť čísla v rozsahu. Predstavte si, že chcete vytvoriť slučku medzi 0 a 100, ale zobrazovať iba každé desiate číslo. Nasledujúci skript ukazuje, ako to urobiť práve takto: #! / bin / bashfor číslo v {0..100..10} doecho "$ number" doneexit 0
Pravidlá sú v podstate rovnaké. K dispozícii je zoznam, premenná a množina výkazov, ktoré sa majú vykonať medzi robiť a hotový , Tento zoznam vyzerá takto: {0..100..10}. Prvé číslo je 0 a koncové číslo je 100. Tretie číslo (10) je počet položiek v zozname, ktoré preskočí. Vyššie uvedený príklad preto zobrazuje nasledujúci výstup: Spôsob písania jazyka BASH pre slučky je trochu zvláštny v porovnaní s inými programovacími jazykmi. Môžete napriek tomu napísať slučku v podobnom štýle ako programovací jazyk C, napríklad: # {bin / bashfor ((číslo = 1; číslo <100; číslo ++)) {if (($ číslo% 5 == 0)) thenecho "$ číslo je deliteľné 5"
Cyklus začína nastavením premenného čísla na hodnotu 1 (číslo = 1 ). Slučka zachová iteráciu, pričom hodnota čísla je nižšia ako 100 ( číslo <100 ). Hodnota číslo zmeny po pridaní 1 po každej iterácii ( číslo ++ ). Všetko medzi kliešťami sa uskutočňuje prostredníctvom každej iteračnej cykly. Bit medzi výstupkami kontroluje hodnotu a číslo , rozdeľuje ho o 5 a porovnáva zvyšok s číslom 0. Ak je zvyšok 0, číslo je deliteľné 5 a potom sa zobrazí na obrazovke. Napríklad: Ak chcete zmeniť veľkosť kroku iterácie, môžete zmeniť číslo sekcie ++ číslo = číslo + 2 , číslo = číslo + 5 , alebo číslo = číslo + 10 atď. To možno ďalej redukovať na číslo + = 2 alebo číslo + = 5 . Pre slučky môže robiť viac ako opakovať zoznam čísel. Môžete skutočne použiť výstup iných príkazov ako zoznam. Nasledujúci príklad ukazuje, ako previesť zvukové súbory z formátu MP3 do formátu WAV: #! / Bin / bashpre súbor vo formáte ./*.mp3dompg -w ./wavs/"${file}".wav "$ file" hotovo
Zoznam v tomto príklade je každý súbor s príponou .MP3 v aktuálnom priečinku a premenná je a súbor . mpg príkaz konvertuje súbor MP3 do formátu WAV. Pravdepodobne musíte najprv nainštalovať program pomocou správcu balíkov.
Ako načrtnúť medzi začiatkom a koncom
Ako preskočiť čísla v rozsahu
Viac tradičné hľadanie slučky
Praktický príklad













