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 11:44 | Nová verze

    Dibuja je jednoduchý kreslící program inspirovaný programy Paintbrush pro macOS a Malování pro Windows. Vydána byla verze 0.26.0.

    Ladislav Hagara | Komentářů: 0
    včera 23:33 | Nová verze

    Byla vydána nová verze 9.13 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 21:44 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Nová verze

    Byla vydána nová stabilní verze 3.22.0, tj. první z nové řady 3.22, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    30.5. 00:33 | IT novinky

    FEL ČVUT vyvinula robotickou stavebnici pro mladé programátory. Stavebnice Brian byla navržená speciálně pro potřeby populární Robosoutěže. Jde ale také o samostatný produkt, který si může koupit každý fanoušek robotiky a programování od 10 let, ideální je i pro střední školy jako výuková pomůcka. Jádro stavebnice tvoří programovatelná řídicí jednotka, kterou vyvinul tým z FEL ČVUT ve spolupráci s průmyslovými partnery. Stavebnici

    … více »
    Ladislav Hagara | Komentářů: 44
    29.5. 20:33 | Komunita

    Ubuntu bude pro testování nových verzí vydávat měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 25.10 (Questing Quokka).

    Ladislav Hagara | Komentářů: 0
    29.5. 14:55 | Nová verze

    Společnost Netgate oznámila vydání nové verze 2.8.0 open source firewallové, routovací a VPN platformy pfSense (Wikipedie) postavené na FreeBSD. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    29.5. 14:00 | Nová verze

    Byla vydána nová verze 6.16 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Tor Browser byl povýšen na verzi 14.5.3. Linux na verzi 6.1.140. Další změny v příslušném seznamu.

    Ladislav Hagara | Komentářů: 0
    29.5. 12:33 | Zajímavý článek

    Člověk odsouzený za obchod s drogami daroval letos ministerstvu spravedlnosti 468 kusů kryptoměny bitcoin, které pak resort v aukcích prodal za skoro miliardu korun. Darováním se zabývá policejní Národní centrála proti organizovanému zločinu (NCOZ). Deníku N to potvrdil přímo ministr spravedlnosti Pavel Blažek (ODS). Podle resortu bylo nicméně vše v souladu s právem.

    Ladislav Hagara | Komentářů: 59
    28.5. 20:44 | Nová verze

    Svobodný a otevřený multiplatformní editor EPUB souborů Sigil (Wikipedie, GitHub) byl vydán ve verzi 2.5.0. Stejně tak doprovodný vizuální EPUB XHTML editor PageEdit (GitHub).

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (56%)
     (31%)
     (7%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 171 hlasů
     Komentářů: 13, poslední 30.5. 12:26
    Rozcestník

    Dotaz: BASH : Jak zjistit, jestli je položky již v array?

    11.12.2012 10:55 AleX
    BASH : Jak zjistit, jestli je položky již v array?
    Přečteno: 275×
    Ahoj, poradí někdo jak to zjistit? Díky

    Odpovědi

    11.12.2012 11:17 l4m4
    Rozbalit Rozbalit vše Re: BASH : Jak zjistit, jestli je položky již v array?
    for-cyklem, který projde celé pole (for x in "${a[@]}"...) a položky pěkně po jedné porovná pomocí test. A během psaní toho cyklu přemýšlet, zda je bash pro tuto úlohu vhodný nástroj...
    11.12.2012 11:30 AleX
    Rozbalit Rozbalit vše Re: BASH : Jak zjistit, jestli je položky již v array?
    Díky, V každém případě to vhodný jazyk není!

    Tak jsem to sesmolil ale nejde mi to, co je tam zle? Díky
    in_array() {
         for x in "${a[@]}"
         do
              if [ "$1" == "x" ]
              then
                   return 0
              else
                   return 1
              fi
         done
    } 
    
    if in_array "czech"
    then
          echo je
    else
          echo neni
    fi
    11.12.2012 11:48 l4m4
    Rozbalit Rozbalit vše Re: BASH : Jak zjistit, jestli je položky již v array?
    Přinejmenším chybí $ u x.
    11.12.2012 11:52 AleX
    Rozbalit Rozbalit vše Re: BASH : Jak zjistit, jestli je položky již v array?
    Tím to ale není...
    11.12.2012 11:56 AleX
    Rozbalit Rozbalit vše Re: BASH : Jak zjistit, jestli je položky již v array?
    Ještě bych to mohl napsat i takto, ale výsledek je stejný
    in_array() {
     for x in "${a[@]}"
     do
      if [ "$1" == "$x" ]
      then
       return 0
       break
      fi
     done
     return 1
    } 
    
    in_array "czech"
    if [ $? == 0 ]
    then
          echo "je"
    else
          echo "neni"
    fi
    11.12.2012 12:01 l4m4
    Rozbalit Rozbalit vše Re: BASH : Jak zjistit, jestli je položky již v array?
    Jo, a samozřejmě return je zapotřebí udělat pouze, když najdeš, jinak kontroluješ pouze první položku...
    11.12.2012 12:06 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: BASH : Jak zjistit, jestli je položky již v array?
    Tohle už funguje. Ještě někam na začátek dejte to pole, třeba
    a[0]="x"
    a[1]="czech"
    a[2]="y"
    a uvidíte, jak vám to pěkně půjde.

    Pro ladění doporučuji třeba toto:
     for x in "${a[@]}"
     do
       echo "arr: $x == $1"
    11.12.2012 12:08 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: BASH : Jak zjistit, jestli je položky již v array?
    Jo a break je nadbytečný.
    11.12.2012 12:19 AleX
    Rozbalit Rozbalit vše Re: BASH : Jak zjistit, jestli je položky již v array?
    break jsem tam dal proto, aby když najde shodu, neprocházel zbytečné zbytek pole, je to špatně?
    11.12.2012 12:40 Kit
    Rozbalit Rozbalit vše Re: BASH : Jak zjistit, jestli je položky již v array?
    Po returnu se ten break stejně už neprovede.
    11.12.2012 14:57 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: BASH : Jak zjistit, jestli je položky již v array?
    Pokud dokážeš ovlivnit, jak pole vzniká, tak stačí použít asociativní pole
    $ declare -A dict
    $ dict["foo"]="foo"
    $ if [[ ${dict["foo"]} != '' ]]; then echo "je tam"; fi
    je tam
    $ if [[ ${dict[42]} != '' ]]; then echo "je tam"; fi
    $
    
    Nejsem si teda jistý, jak je to interně implementováno, takže asociativní pole nemusí garantovat pořadí, ale v bashi člověk nikdy neví.
    When your hammer is C++, everything begins to look like a thumb.
    11.12.2012 15:39 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: BASH : Jak zjistit, jestli je položky již v array?
    Predpokladajme, ze znak | sa nevyskytuje nikde v poli.
    pole=( a b c )
    IFS='|'
    [[ "${pole[*]}" == *a* ]] &&
      echo hura
    If you hold a Unix shell up to your ear, you can you hear the C.
    11.12.2012 15:43 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: BASH : Jak zjistit, jestli je položky již v array?
    Eeeeee, oprava:
    pole=( aaa bb c )
    IFS='|'
    [[ "|${a[*]}|" == *"|bb|"* ]] &&
      echo hura
    If you hold a Unix shell up to your ear, you can you hear the C.

    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.