Jednoduchý cyklus - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Kde se narodil známý fotograf František Drtikol?

V dnešní soutěži hrajeme o:

Seriály

Více seriálů



Informace

Jednoduchý cyklus

8. srpna 2002, 00.00 | Po příkazu if, který jsme si ukázali v posledních dílech, se dnes podíváme na základní příkazy cyklu: while, until a repeat. Všechny mají stejný účel: opakovat podle potřeby vícekrát provádění seznamu (tj. požadovaného příkazu nebo jejich skupiny).

Po příkazu if, který jsme si ukázali v posledních dílech, se dnes podíváme na základní příkazy cyklu: while, until a repeat. Všechny mají stejný účel: opakovat podle potřeby vícekrát provádění seznamu (tj. požadovaného příkazu nebo jejich skupiny).

Příkaz repeat

Nejjednodušším příkazem je repeat. Jeho obecný tvar vypadá takto

 repeat výraz do seznam done

Shell nejprve vyhodnotí aritmetický výraz (s aritmetikou, již shell rozumí, jsme se seznámili už ve čtyřicátém dílu v souvislosti s příkazem let), a pak prostě provede seznam tolikrát, jaké číslo mu vyjde:

 134 /tmp> repeat 3 do echo Haha ; done
 Haha
 Haha
 Haha
 135 /tmp> repeat $((1-2+3)) do echo Haha ; done
 Haha
 Haha
 136 /tmp> 

Pokud je výsledek záporný nebo nula, seznam se neprovede vůbec.

Příkazy while a until

Na rozdíl od příkazu repeat, jehož argumentem je číslo, argumentem příkazů while a until je obecná podmínka, stejně, jako v příkazu if:

 while seznam1 do seznam2 done
 until seznam1 do seznam2 done

Příkaz while provádí seznam2 tak dlouho, dokud podmínka platí (tj. seznam1 vrací nulovou návratovou hodnotu). Naopak, příkaz until provádí seznam2 tak dlouho, dokud podmínka neplatí.

 148 /tmp> a=0
 149 /tmp> while [[ $a -lt 10 ]] do a=$((a+3)) ; echo a=$a ; done
 a=3
 a=6
 a=9
 a=12
 150 /tmp> a=
 151 /tmp> touch xxxxx
 152 /tmp> until [[ -a $a ]] do a=x$a ; echo checking $a; done ; echo $a exists
 checking x
 checking xx
 checking xxx
 checking xxxx
 checking xxxxx
 xxxxx exists 
 153 /tmp> 

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Software  

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: