Příkaz case - 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ů



Software

Příkaz case

29. srpna 2002, 00.00 | Poslední z příkazů pro řízení průběhu scriptu, které si zde ukážeme, bude příkaz case. Ten umožňuje v některých případech mnohem pohodlnější větvení na více alternativ, než odpovídající skupina příkazů if/else.

Poslední z příkazů pro řízení průběhu scriptu, které si zde ukážeme, bude příkaz case. Ten umožňuje v některých případech mnohem pohodlnější větvení na více alternativ, než odpovídající skupina příkazů if/else.

Základní formát příkazu case vypadá takto:

 case slovo in
   ( vzorec [ | vzorec ] ...) seznam ;;
   ...
 esac

kde slovo je prostě textový řetězec, a vzorce jsou výrazy (sestavené podle týchž pravidel, jež shell využívá pro specifikaci souborů). Jestliže dané slovo odpovídá některému ze vzorců, provede se seznam příkazů, jež za ním následují (ukončený dvojitým středníkem). Pokud slovo žádnému ze vzorců neodpovídá, neprovede se samozřejmě nic. Pro určitý seznam lze v závorkách uvést vzorců víc; v takovém případě se oddělují "svislítkem".

Triviální příklad využití příkazu case by mohl vypadat třeba takto (na řádcích 73-78 pro úsporu místa znázorňujeme celé "tělo" příkazu case jen trojicí teček — je přesně stejné, jako na řádku 72):

 72 /tmp> case a in
 (a) echo "Je to a" ;;
 (b | c) echo "Je to b nebo c" ;;    
 ([d-l]) echo "Je to v intervalu d..l" ;;
 (??) echo "Ma to dva znaky" ;;
 esac
 Je to a
 73 /tmp> case b in
 ...
 Je to b nebo c
 74 /tmp> case c in
 ...
 Je to b nebo c
 75 /tmp> case d in
 ...
 Je to v intervalu d..l
 76 /tmp> case h in
 ...
 Je to v intervalu d..l
 77 /tmp> case m in
 ...
 78 /tmp> case am in
 ...
 Ma to dva znaky
 79 /tmp> 

V praxi samozřejmě většinou na místě slova využijeme proměnnou (jejíž obsah jsme dříve ve skriptu získali jako výsledek nějakého výpočtu), nebo složitější výraz — následující příkaz např. zobrazí počet souborů ve složce:

 91 /tmp> case `ls | wc -l | tr -cd 0-9` in
 (0) echo "Nic tam neni" ;;
 (1) echo "Jeden fajlik" ;;
 (2) echo "Dva fajliky" ;;
 (3) echo "Tri fajliky" ;;
 (*) echo "Mooooc fajliku..." ;;
 esac
 Dva fajliky
 92 /tmp> ls
 ocs/     slp_ipc=
 93 /tmp> 

(Příkaz tr odfiltruje z výstupu různé pomocné nečíselné znaky, jež tam příkaz wc mohl uložit — např. tabelátory nebo konce řádků.)

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

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Software  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

Zatím nebyl uložen žádný příspěvek, buďte první.

 

 

Vložit nový příspěvek

Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

 

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

Uživatelské jméno:

Heslo: