abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 13:00 | Komunita

    Dnes a zítra probíhají Arduino Days 2026. Na programu je řada zajímavých přednášek. Sledovat je lze od 17:00 na YouTube. Zúčastnit se lze i lokálních akcí. Dnes v Poličce v městské knihovně a zítra v Praze na Matfyzu.

    Ladislav Hagara | Komentářů: 2
    dnes 12:11 | Nová verze

    Byla vydána beta verze Ubuntu 26.04 LTS s kódovým názvem Resolute Raccoon. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 26.04 LTS mělo vyjít 23. dubna 2026.

    Ladislav Hagara | Komentářů: 0
    dnes 02:22 | Komunita Ladislav Hagara | Komentářů: 8
    včera 23:22 | Komunita

    Ubuntu plánuje v budoucích verzích nahradit tradiční nástroje pro synchronizaci času (chrony, linuxptp a gpsd) novým, v Rustu napsaným ntpd-rs, který nabídne vyšší bezpečnost a stabilitu.

    Ladislav Hagara | Komentářů: 3
    včera 22:33 | Nová verze

    Byla vydána nová verze 7.6 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Správce hesel KeePassXC byl nahrazen správcem hesel GNOME Secrets. Bitcoinová peněženka Electrum byla povýšena na verzi 4.7.0. Tor Browser byl povýšen na verzi 15.0.8. Další novinky v příslušném seznamu.

    Ladislav Hagara | Komentářů: 1
    včera 11:33 | Zajímavý článek

    Chris Down v obsáhlém článku „vyvrací mýty o zswap a zram“, vysvětluje, co vlastně dělají a jaké jsou mezi nimi rozdíly. Doporučuje vyhýbat se zram na serveru a bez OOM.

    |🇵🇸 | Komentářů: 1
    včera 11:22 | IT novinky

    Porota v Los Angeles shledala firmy Google a Meta odpovědnými v přelomovém soudním sporu, který se týká závislosti na sociálních sítích; firmy musí zaplatit odškodné tři miliony dolarů (63,4 milionu Kč). Společnosti, které s verdiktem nesouhlasí, čelily obvinění, že své sociální sítě a platformy záměrně navrhly tak, aby si na nich děti vypěstovaly závislost. Porota došla k závěru, že technologické společnosti při navrhování a

    … více »
    Ladislav Hagara | Komentářů: 14
    25.3. 19:11 | Komunita

    Jelikož vývojáři editorů Vim a Neovim začali při vývoji využívat LLM, Drew DeVault se rozhodl forknout Vim a vytvořil projekt Vim Classic. Vychází z Vimu 8.2.0148, tj. těsně před zavedením Vim9 skriptování.

    Ladislav Hagara | Komentářů: 6
    25.3. 16:11 | Nová verze

    Byla vydána nová verze 0.56 open source počítačové hry Unvanquished (Wikipedie), forku počítačové hry Tremulous. Instalovat ji lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    25.3. 14:11 | Nová verze

    FreeCAD (Wikipedie), tj. svobodný multiplatformní parametrický 3D CAD, byl vydán ve verzi 1.1 (YouTube). Po roce a čtyřech měsících od předchozí verze 1.0. Přehled novinek i s náhledy v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 4
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (30%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1163 hlasů
     Komentářů: 27, poslední 17.3. 19:26
    Rozcestník

    Dotaz: Bash indirect reference

    2.8.2011 14:46 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Bash indirect reference
    Přečteno: 244×
    Zdravím,

    Již nějakou dobu bloumám nad tím, jak u pole předaného funkci názvem zjistím počet prvků.

    první fáze (nepřímá reference na celé pole) se povedla
    function enum () {
       LocalArray= "$1[*]"
       echo ${!LocalArray} # vypíše obsah pole 
       echo ${#!LocalArray} # Tady bych chtěl vypsat počet prvků, 
         tento zápis ale bash nebere
       .....
    
    }
    Možná jdu na problém zbytečně složitě, ale ani přes google nemůžu najít odpověď

    Předem díky za pomoc

    Řešení dotazu:


    Odpovědi

    2.8.2011 15:25 marek
    Rozbalit Rozbalit vše Re: Bash indirect reference
    Dobry den.

    Jestli jsem to dobre pochopil:

    marek:~/bash$ function enum () {
    >    LocalArray="$1"
    >    echo ${#LocalArray}
    > 
    > }
    marek:~/bash$ 
    marek:~/bash$ pole=(nula jedna dva tri)
    marek:~/bash$ 
    marek:~/bash$ enum pole
    4
    marek:~/bash$
    
    Marek
    3.8.2011 07:43 Milan Uhrák | skóre: 31 | blog: milan_at_ABC
    Rozbalit Rozbalit vše Re: Bash indirect reference
    Zajímavé přímočaré řešení :D

    kdysi jsem tenhle problém řešil, a mám dojem, že to přímé přiřazení nefungovalo, a muselo se to obcházet právě tím nepřímým odkazem .. a teď , když jsem zase hodlal něco pro bash napsat, vydal jsem se stejnou cestou...

    Děkuji za řešení.. doufám, že nemá nějaké skryté zádrhele.
    3.8.2011 10:01 marek
    Rozbalit Rozbalit vše Re: Bash indirect reference
    Dobry den.

    No ono to bohuzel ma takovou neprijemnou vlastnost:

    marek:~$ function enum () {
    >     LocalArray="$1"
    >     echo ${#LocalArray}
    >  }
    marek:~$ pole=(nula jedna dva )
    marek:~$ enum pole
    4
    

    Pocitame totiz pocet znaku ve slove "pole"

    Takze se za blamaz omlouvam a sypu si popel na hlavu.

    Marek
    2.8.2011 15:26 NN
    Rozbalit Rozbalit vše Re: Bash indirect reference
    echo ${#array[*]}
    echo ${#array[@]}
    Je tam drobny rozdil, ale ten uz si nepamatuju..

    NN
    2.8.2011 16:23 zulu
    Rozbalit Rozbalit vše Re: Bash indirect reference
    Kdysi jsem podobnou věc řešil a nevypadá to, že by se v tomto směru něco změnilo. Takže pokud nechceš vytvářet nové pole, tak asi budeš muset použít eval.
    3.8.2011 11:00 marek
    Rozbalit Rozbalit vše Re: Bash indirect reference

    Dobry den.

    marek:~$ function enum () {
    >     eval "echo \${#${1}[@]}"
    >  }
    marek:~$ pole=(nula jedna "dva tri")
    marek:~$ enum pole
    3
    
    4.8.2011 23:39 Milan
    Rozbalit Rozbalit vše Re: Bash indirect reference
    Děkuji za uvedeni věcí na pravou míru... :D

    Milan

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.