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 00:33 | IT novinky

Josef Průša představil na Maker Faire v New Yorku svou novou 3D tiskárnu Original Prusa i3 MK3. Z novinek (YouTube) lze zdůraznit senzor filamentu, výměnnou magnetickou podložku, rychlejší tisk nebo rozpoznání uskočené vrstvy, výpadku napájení a výpadku filamentu (YouTube).

Ladislav Hagara | Komentářů: 2
včera 17:22 | Komunita

Martin Flöser představil na svém blogu projekt XFree KWin. Cílem projektu je rozběhnout správce oken KWin na Waylandu bez XWaylandu [reddit].

Ladislav Hagara | Komentářů: 3
včera 16:55 | Komunita

Do pátku 29. září probíhá v Praze v hotelu Hilton konference SUSECON 2017 pořádaná společností SUSE. Dění na konferenci lze sledovat na Twitteru. Nils Brauckmann, CEO společnosti SUSE, vítá účastníky konference na YouTube.

Ladislav Hagara | Komentářů: 2
včera 07:00 | Komunita

Příspěvek na blogu společnosti Yubico informuje o začlenění podpory bezpečnostních klíčů FIDO U2F do Firefoxu Nightly. Dosud bylo možné dvoufázové ověření pomocí FIDO U2F ve Firefoxu zajistit pouze pomocí doplňku.

Ladislav Hagara | Komentářů: 3
včera 06:00 | Humor

Adobe PSIRT (Adobe Product Security Incident Response Team) neúmyslně zveřejnil (archive) na svém blogu svůj soukromý OpenPGP klíč. Klíč byl revokován a vygenerován nový. Nelze nezmínit xkcd 1553 - Veřejný klíč.

Ladislav Hagara | Komentářů: 1
24.9. 20:00 | Nová verze

Byla vydána (cgit) verze 0.99 svobodného nelineárního video editoru Pitivi. Jedná se o release candidate verze 1.0. Přehled úkolů, které je nutno ještě dodělat, na Phabricatoru. Pitivi je k dispozici také ve formátu Flatpak.

Ladislav Hagara | Komentářů: 0
24.9. 17:11 | Komunita

Microsoft s Canonicalem představili linuxové jádro Ubuntu optimalizováno pro cloudové služby Microsoft Azure (linux-azure). Jako výchozí je toto menší a výkonnější jádro použito již v Ubuntu Cloud Images for Ubuntu 16.04 LTS. Canonical zatím nenabízí patchování tohoto jádra za běhu systému (Canonical Livepatch Service).

Ladislav Hagara | Komentářů: 1
24.9. 14:55 | Komunita

Facebook oznámil, že přelicencuje open source projekty React, Jest, Flow a Immutable.js ze své vlastní kontroverzní licence BSD+Patents na licenci MIT. Stane se tak tento týden s vydáním Reactu 16. Jedním z důvodů přelicencování bylo oznámení nadace Apache, že software pod Facebook BSD+Patents licencí nesmí být součástí produktů pod touto nadací [Hacker News].

Ladislav Hagara | Komentářů: 0
23.9. 21:44 | Nová verze

Po půl roce od vydání verze 9.0 byla vydána verze 10.0 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab (Wikipedie). Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 1
22.9. 18:11 | Nová verze

Společnost Oracle oficiálně oznámila vydání Java SE 9 (JDK 9), Java Platform Enterprise Edition 8 (Java EE 8) a Java EE 8 Software Development Kit (SDK). Java SE 9 přináší více než 150 nových vlastností.

Ladislav Hagara | Komentářů: 0
Těžíte nějakou kryptoměnu?
 (5%)
 (3%)
 (17%)
 (75%)
Celkem 576 hlasů
 Komentářů: 23, poslední 24.9. 18:12
    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: 241×
    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: 44 | 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: 44 | 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.