Příkaz if - 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:

Seriály

Více seriálů



Software

Příkaz if

4. července 2002, 00.00 | Pomocí příkazu if můžeme větvit provádění skriptu: jestliže jsou třeba špatně zadané jeho vstupní parametry, chceme vypsat nápovědu; jestliže neexistuje archivační program gnutar, použijeme namísto něj tar... a podobně.

Pomocí příkazu if můžeme větvit provádění skriptu: jestliže jsou třeba špatně zadané jeho vstupní parametry, chceme vypsat nápovědu; jestliže neexistuje archivační program gnutar, použijeme namísto něj tar... a podobně.

Příkaz if využívá seznamy a jejich návratové hodnoty, jak jsme si je popsali v minulém dílu: jeden seznam representuje jeho podmínku, jejíž výsledek závisí na návratové hodnotě; podle toho se provedou (nebo neprovedou) další seznamy, jež tvoří tělo příkazu. V nejjednodušší podobě tedy příkaz if vypadá takto:

 if seznam then seznam fi

Jeho interpretace je snad zřejmá: nejprve se vyhodnotí první seznam podle pravidel, jež jsme si popsali v minulém dílu. Jestliže "platí" (tedy návratová hodnota seznamu je nulová; programátoři v C si musí dát pozor, protože tam je tomu naopak), druhý seznam se provede; neplatí-li (návratová hodnota prvého seznamu je nenulová), neprovede se nic:

 153 /tmp> echo Huhly > test                              
 154 /tmp> if fgrep -q uh test ; then echo Jetam ; fi     
 Jetam
 155 /tmp> if fgrep -q eh test ; then echo Jetam ; fi
 156 /tmp> if fgrep -q -v uh test ; then echo Nenitam ; fi
 157 /tmp> if fgrep -q -v eh test ; then echo Nenitam ; fi
 Nenitam
 158 /tmp> 

Příkaz if v zsh (trochu podobně, jako ve vyšších programovacích jazycích) ovšem nabízí bohatší možnosti. Především — jak už vyplývá z definice seznamu, jak jsme si ji ukázali minule — seznam může obsahovat libovolné množství příkazů:

 158 /tmp> if fgrep -q uh test ; then echo Je; echo tam ; echo '"uh"' ; fi
 Je
 tam
 "uh"
 159 /tmp> 

(Ve skriptech můžeme namísto středníku oddělovat příkazy také tím, že je zapisujeme na samostatné řádky — to je často přehlednější.)

Můžeme také použít blok else a libovolné množství bloků elif pro bohatší větvení: else znamená "provést, když podmínka neplatí":

 159 /tmp> if fgrep -q uh test ; then echo Jetam ; else echo Nenitam ; fi 
 Jetam
 160 /tmp> if fgrep -q eh test ; then echo Jetam ; else echo Nenitam ; fi
 Nenitam
 161 /tmp> 

Bloky elif mají vlastní podmínku (tentokrát namísto středníků oddělíme jednotlivé části příkazu konci řádků; povšimněte si "promptů", jimiž zsh dává uživateli na vědomí, v jakém stavu "rozpracovanosti" příkaz if právě je):

 161 /tmp> if fgrep -q eh test
 if> then echo Jetam '"eh"'
 then> elif fgrep -q uh test
 elif> then echo Jetam '"uh"'
 elif-then> else echo Neni tam ani jeden
 else> fi
 Jetam "uh"
 162 /tmp> 

Příště se podíváme na některé speciální příkazy, jež můžeme používat na místě seznamu, representujícího podmínku příkazu if.

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

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Software  

 

 

 

Nejčtenější články
Nejlépe hodnocené články
Apple kurzy

 

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

Uživatelské jméno:

Heslo: