GNU/Linux >> Znalost Linux >  >> Linux

Smyčka while ve skriptech Shell

Dnes se dozvíme o smyčce while ve skriptech shellu. Smyčky jsou nezbytnou součástí každého programovacího jazyka. Když napíšeme kód pro provedení sady příkazů 15krát, psaní stejného příkazu znovu a znovu by bylo neproduktivní.

Smyčky šetří čas programátora.

Jednou z nejčastěji používaných smyček v jakémkoli programovacím jazyce je smyčka while. Smyčku while používáme ve skriptech shellu k opakování sady příkazů, pokud je po každé iteraci splněna daná podmínka.

Jak funguje smyčka while ve skriptech shellu?

Smyčka while ve skriptech shellu vám pomůže zefektivnit váš kód snížením množství kódu, který potřebujete napsat.

Hodí se to, když musíte ve skriptu něco dělat znovu a znovu. Pojďme pochopit fungování smyčky while ve skriptech shellu prostřednictvím její syntaxe:

while [ condition ] 
do 
    statement 1
    statement 2
done

Zde máme tři klíčová slova, konkrétně zatímco , proveďte a hotovo .

  • První klíčové slovo „while“ označuje začátek cyklu při spuštění skriptu shellu.
  • Za ním následuje podmínka uzavřená v kulatých závorkách.
  • Klíčové slovo „do“ se používá před příkazy, které se mají v cyklu provést.
  • Každá smyčka while se skládá z podmínky, za kterou následuje sada příkazů.
  • Pak narazíme na klíčové slovo done, které značí konec smyčky.

Myslete na to a hotovo jako na otevírání a zavírání závorek v jiných programovacích jazycích

Nejprve se vyhodnotí stav. Pokud je podmínka PRAVDA, následující příkazy provedou bude provedena. To se opakuje, dokud nenastane bod, kdy se podmínka vyhodnotí jako FALSE.

Jakmile je podmínka nepravdivá, smyčka bude ukončena.

Důležité je mít na paměti, že podobně jako programování v C i skriptování v shellu rozlišuje velká a malá písmena. Při používání klíčových slov v kódu proto musíte být opatrní.

Pokud se chcete dozvědět o podmíněných příkazech, klikněte sem a přečtěte si o if-else ve skriptech shellu.

Použití smyčky while ve skriptech shellu

Pouhé pročítání teorie a pohled na syntaxi by vám neprospělo, dokud ji nebudete moci prakticky použít ve svém kódu.

Pro lepší pochopení konceptu a jeho praktické aplikace se proto podívejte na následující příklad.

Během smyčky pro tisk prvních 5 čísel

Vždy je nejlepší začít něčím základním. Zde použijeme smyčku while ve skriptech shellu k vytištění prvních 5 přirozených čísel na naši obrazovku.

Tento jednoduchý skript se bude opakovat, zatímco hodnota proměnné 'a' je menší než ('-lt') 5. Podmínka platí pro čísla od 1 do 4, proto bude příkaz proveden pro totéž.

Pro jakékoli číslo větší nebo rovné 5 je podmínka nepravdivá. Smyčka bude tedy ukončena. Zde je návod, jak bude kód zapsán.

#!/bin/sh
a=1
while [ $a -lt 5 ]
do
    echo $a
    ((a++))
done

Nalezení faktoriálu pomocí smyčky while ve skriptech Shell

Jedním z praktičtějších příkladů by bylo použití funkce while smyčky k dokončení úkolu. Pojďme najít faktoriál čísla.

Následující kód ukazuje, jak můžeme tento úkol provést pomocí cyklu while.

#!/bin/sh
counter=5
factorial=1
while [ $counter -gt 0 ]
do 
      factorial=$(( $factorial * $counter ))
      ((counter--))
done 
echo $factorial

Jak vidíte, faktoriál pro smyčku while je vytištěn správně jako 120.

Čtení souboru ve skriptech Shell pomocí smyčky while

Když máme co do činění s textovými soubory, ukazuje se, že smyčka je důležitým nástrojem, protože smyčku můžeme přimět, aby četl celý soubor pomocí při čtení příkaz.

Tento příkaz nám může pomoci číst obsah souboru z příkazového řádku. Následující kód používá tuto funkci smyčky while ve skriptu shellu ke čtení obsahu souboru po řádcích a poté jej vytiskne na obrazovku uživatele.

#!/bin/bash
FILE=$1
while read line
do
    # use $line variable to process line
    echo $line
done < $FILE

Jak můžete vidět, předal jsem název souboru jako argument, protože v našem shell skriptu jsme použili $1 a přiřadili jej k proměnné FILE. To znamená, že první argument bude přijat jako název souboru a skript bude pokračovat ve čtení souboru.

Také používáme operátor přesměrování vstupu ve skriptu po dokončení, takže můžeme použít název souboru přímo jako argument při provádění skriptu.

Pokud tuto část přeskočíte, váš příkaz bude vypadat něco na řádcích:

bash file.sh < filename.txt

Takže vidíte, přesměrujte vstup ve skriptu nebo při provádění skriptu. Výsledky jsou stejné.

Závěr

Smyčka while ve skriptech shellu je klíčovou zbraní v arzenálu každého programátora shellu. Je to nejlepší nástroj, který můžete použít, když potřebujete provést sadu příkazů opakovaných na základě podmínky.

Automatizací provádění konkrétních příkazů nejenže potřebujete psát méně kódu, ale také uvolňujete čas, který lze využít v důležitějších úlohách, jako je ladění.

Doufáme, že vám tento tutoriál pomohl pochopit, jak používat funkci cyklu While. Pokud máte nějaké dotazy, zpětnou vazbu nebo návrhy, neváhejte se na nás obrátit v komentářích níže.


Linux
  1. Přizpůsobení prostředí Bash

  2. Povolit skripty Setuid On Shell?

  3. Asociativní pole ve skriptech Shell?

  1. Přednost logických operátorů Shell &&, ||?

  2. Udržujeme vás ve smyčce – příklady opakování pro, Zatímco, dokud

  3. Shell Script while loop:[ kolem potrubí chybí `]'

  1. Moc (Shell) lidem

  2. Pointa externího příkazu `cd`?

  3. Správné zamykání skriptů Shell?