Ako používať Bash pre príkazy slučky


Jedným z najlepších spôsobov, ako si uľahčiť život pomocou technológií, či už v práci alebo doma, je využiť automatizáciu. Automatizácia úloh pomocou skriptov a časovaných úloh je spoľahlivý spôsob, ako ušetriť čas, bolesť hlavy a námahu. Nie je však hneď jasné, kde začať. Tu vám ukážeme, ako môžete začať pomocou príkazu Bash for loop, jedného zo základných nástrojov v automatizácii IT.

Prečítajte si tiež: Použite tieto klávesové skratky na rýchly pohyb v Bash

Nastavenie testovacieho prostredia

Prvá vec, ktorú budete potrebovať, je funkčná inštancia Bash. Toto je predvolený shell v termináli v systémoch Linux, Unix, BSD a macOS (pokiaľ nepoužívate zsh). Môžete skontrolovať, ktorý shell používate, zadaním nasledujúceho príkazu do terminálu:

echo $SHELL

Mal by vytlačiť shell, ktorý používate. Môj výstup mi hovorí, že používam /bin/bash, čo je presne to, čo hľadám.

Budete tiež potrebovať textový editor - ktorýkoľvek editor, ktorý si vyberiete, by mal byť v poriadku. V termináli používam Nano, ale rovnako ľahko môžete použiť Vim alebo Emacs v termináli alebo niečo ako Gedit, Kate alebo Sublime v GUI.

Vytvorte súbor skriptu vo svojom textovom editore, buď pomocou príkazu touch alebo jednoducho napísaním názvu textového editora a názvu súboru, ktorý chcete vytvoriť. Pre mňa by som mohol napísať nano for-loop-test.sh a bol by som zlatý.

The Bash For Loop: Základy

Cyklus For v Bash hovorí shellu, aby iteroval cez zadaný rozsah objektov a vykonal na týchto objektoch zadaný príkaz. Čo to znamená? Myslím, že môže byť jednoduchšie vám to ukázať. Toto je veľmi základná slučka For.

Prvý riadok pre i v 1 2 3 4 5 určuje premennú „i“ a rozsah 1 až 5. Rovnako ľahko to môže byť nejaká iná, zložitejšia postupnosť čísel alebo byť zoznam vstupných súborov alebo adresár.

Ďalším bitom je základné formátovanie s príkazom, ktorý sa má vykonať v časti s kartami. do a done sú súčasťou syntaxe cyklu For a musia tam byť. Ak by som mal spustiť tento skript, dostal by som takýto výstup:

Test round 1
Test round 2
Test round 3
Test round 4
Test round 5

Môžete vidieť, ako táto premenná prichádza. Pomáha vám identifikovať každý jednotlivý objekt v danom vstupnom rozsahu. Ak chcete zadať trochu zložitejšie rozsahy čísel, môžete ich nastaviť pomocou zložených zátvoriek. Ak chcete zadať rovnaký rozsah ako predtým, môžete zmeniť pre $i v 1 2 3 4 5 na pre $i v {1..5}. Výstup by bol rovnaký. Môžete ho tiež nechať počítať podľa určitých čísel. Toto je odpočítavanie všetkých čísel po 3 medzi 0 a 27.

Niečo, čo je v skriptoch bežnejšie, je vykonávanie konkrétneho príkazu na množstve súborov. Ak by som chcel použiť cat na veľa súborov v adresári, mohol by som to urobiť zmenou skriptu na nasledujúci.

To by vytlačilo výstup všetkých súborov v „test-directory“ na termináli.

Výstup by v mojom prípade vyzeral nasledovne.

Môžete začať získať predstavu o tom, aký silný môže byť cyklus For. Toto je len poškriabanie povrchu a medzi do a done môžete spojiť viacero príkazov a tiež môžete použiť podmienené príkazy na vytvorenie zložitejších príkazov.

Nezabudnite si pozrieť naše ďalšie články o Bash, ako sú Bash tipy a triky, ako pracovať inteligentnejšie v termináli a niektoré špeciálne znaky Bash, ktoré by ste mali poznať.

Súvisiace články