Pole hodnot - 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

Pole hodnot

6. června 2002, 00.00 | Shell umožňuje práci s proměnnými, které obsahují pole hodnot; v tomto dílu si ukážeme základní služby, určené pro takovéto využití.

Pole hodnot

Shell umožňuje práci s proměnnými, které obsahují pole hodnot; v tomto dílu si ukážeme základní služby, určené pro takovéto využití.

Základy práce s poli

Pole hodnot můžeme do proměnné uložit pomocí závorek:

 410 /tmp> x=(a b c d e f)
 411 /tmp>

Pro přístup k jednotlivým hodnotám z pole se používá standardní index v hranatých závorkách. Programátoři v C a podobných jazycích si ovšem musí dát pozor na to, že pole jsou standardně indexována od jedničky:

 411 /tmp> echo $x[1]
 a
 412 /tmp>

Mimochodem, uvnitř hranatých závorek může být libovolný aritmetický výraz, a zsh jej vyhodnotí stejně, jako kdyby byl umístěn ve dvojitých závorkách ((...)).

Můžeme také použít dvojici výrazů, a zsh vrátí všechny prvky pole mezi zadanými indexy:

 412 /tmp> echo $x[2,4]
 b c d
 413 /tmp>

Záporný index můžeme použít pro "daný počet prvků od konce", a můžeme také obě možnosti kombinovat. Kompletní rozsah [1,-1] můžeme vynechat (nebo můžeme na místě indexu použít znaky "*" či "@"; to si ukážeme za chvilku):

 413 /tmp> echo $x[-2]
 e
 414 /tmp> echo $x[2,-2]
 b c d e
 415 /tmp> echo $x
 a b c d e f
 416 /tmp>

Samozřejmě, že do prvků pole můžeme dosazovat nové hodnoty:

 416 /tmp> x[2]=dvojka
 417 /tmp> echo $x
 a dvojka c d e f
 418 /tmp>

Vkládání a odebírání hodnot

Na levé straně přiřazovacího příkazu můžeme klidně použít i interval indexů; uvedená část pole se prostě nahradí nově zadanými prvky. Následující příkaz proto nevytvoří vnořené pole na druhém místě od konce; namísto toho do pole vloží nové prvky:

 418 /tmp> x[-2]=(dvojka od konce)
 419 /tmp> echo $x
 a dvojka c d dvojka od konce f
 420 /tmp> echo $x[-2]
 konce
 421 /tmp> 

Zde může mít smysl zadat "nesmyslný" rozsah indexů — chceme-li pouze vložit nové hodnoty, aniž bychom přepisovali kteroukoli z již existujících:

 421 /tmp> x[4,3]=CTYRKA                     
 422 /tmp> echo $x                           
 a dvojka c CTYRKA d dvojka od konce f
 423 /tmp> 

Na stejném principu (záměny zadané části pole novou hodnotou) můžeme existující hodnoty rušit:

 424 /tmp> x[4,-2]=()
 425 /tmp> echo $x  
 a dvojka c f
 426 /tmp>

Příště budeme ještě v práci s poli pokračovat!

Ukážeme si řadu dalších triků, jež práci s poli v shellu dokáží velmi zásadním způsobem usnadnit.

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: