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 01:00 | Komunita

    Debian dnes slaví 32 let. Ian Murdock oznámil vydání "Debian Linux Release" 16. srpna 1993.

    Ladislav Hagara | Komentářů: 0
    včera 17:44 | IT novinky

    Policisté zadrželi odsouzeného drogového dealera Tomáše Jiřikovského, který daroval ministerstvu spravedlnosti za tehdejšího ministra Pavla Blažka (ODS) bitcoiny v miliardové hodnotě, a zajistili i darovanou kryproměnu. Zadržení Jiřikovského může být podle ministerstva důležité k rozuzlení kauzy, která vypukla koncem května a vedla ke konci Blažka. Zajištění daru podle úřadu potvrzuje závěry dříve publikovaných právních

    … více »
    Ladislav Hagara | Komentářů: 5
    včera 13:44 | IT novinky

    Administrativa amerického prezidenta Donalda Trumpa jedná o možném převzetí podílu ve výrobci čipů Intel. Agentuře Bloomberg to řekly zdroje obeznámené se situací. Akcie Intelu v reakci na tuto zprávu výrazně posílily. Trump minulý týden označil Tana za konfliktní osobu, a to kvůli jeho vazbám na čínské společnosti, čímž vyvolal nejistotu ohledně dlouholetého úsilí Intelu o obrat v hospodaření. Po pondělní schůzce však prezident o šéfovi Intelu hovořil příznivě.

    Ladislav Hagara | Komentářů: 3
    včera 05:44 | IT novinky

    Společnost Purism stojící za linuxovými telefony a počítači Librem má nově v nabídce postkvantový šifrátor Librem PQC Encryptor.

    Ladislav Hagara | Komentářů: 9
    14.8. 18:00 | Nová verze

    VirtualBox, tj. multiplatformní virtualizační software, byl vydán v nové verzi 7.2. Přehled novinek v Changelogu. Vypíchnou lze vylepšené GUI.

    Ladislav Hagara | Komentářů: 0
    14.8. 14:11 | IT novinky

    Eric Migicovsky, zakladatel společnosti Pebble, v lednu oznámil, že má v plánu spustit výrobu nových hodinek Pebble s již open source PebbleOS. V březnu spustil předprodej hodinek Pebble Time 2 (tenkrát ještě pod názvem Core Time 2) za 225 dolarů s dodáním v prosinci. Včera představil jejich konečný vzhled (YouTube).

    Ladislav Hagara | Komentářů: 15
    14.8. 12:44 | Zajímavý software

    Byla oznámena nativní podpora protokolu ACME (Automated Certificate Management Environment) ve webovém serveru a reverzní proxy NGINX. Modul nginx-acme je zatím v preview verzi.

    Ladislav Hagara | Komentářů: 1
    14.8. 12:22 | Nová verze

    Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    13.8. 11:55 | IT novinky

    Společnost Perplexity AI působící v oblasti umělé inteligence (AI) podala nevyžádanou nabídku na převzetí webového prohlížeče Chrome internetové firmy Google za 34,5 miliardy dolarů (zhruba 723 miliard Kč). Informovala o tom včera agentura Reuters. Upozornila, že výše nabídky výrazně převyšuje hodnotu firmy Perplexity. Společnost Google se podle ní k nabídce zatím nevyjádřila.

    Ladislav Hagara | Komentářů: 5
    13.8. 04:33 | Bezpečnostní upozornění

    Intel vydal 34 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20250812 mikrokódů pro své procesory řešící 6 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 0
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (52%)
     (19%)
     (4%)
     (5%)
     (3%)
     (1%)
     (1%)
     (17%)
    Celkem 396 hlasů
     Komentářů: 23, poslední 4.8. 13:01
    Rozcestník

    Dotaz: BASH - Jednořádkové podmínky

    9.8.2012 11:11 MM
    BASH - Jednořádkové podmínky
    Přečteno: 401×
    Ahoj, mám takovou podmínku, ale return se provede vždy, proč? Díky
    [ $? == 1 ] || [ $? == 255 ] && rm -f $DIALOG; return

    Řešení dotazu:


    Odpovědi

    9.8.2012 11:25 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: BASH - Jednořádkové podmínky

    Protože je oddělen středníkem, takže nemá s předchozím složeným příkazem nic společného. Středník je víceméně ekvivalentní konci řádku.

    Osobně bych se vykašlal na šetření znaky a upřednostnil srozumitelnost:

    if [ $? = 1 -o $? = 255 ]; then
      rm -f "$DIALOG"
      return
    fi
    

    Skládání operátorů || a && je strašně náchylné na chyby a je lepší se mu vyhnout.

    9.8.2012 12:17 loupak
    Rozbalit Rozbalit vše Re: BASH - Jednořádkové podmínky
    Pokud nepotrebujes else vetev, tak takle
    [ $? = 1 -o $? = 255 ] && {
      rm -f "$DIALOG"
      return
    }
    
    9.8.2012 12:29 Kit
    Rozbalit Rozbalit vše Re: BASH - Jednořádkové podmínky
    Ono to funguje i s větví else, ale občas se v tom nasekají chyby.
    [ $? = 1 -o $? = 255 ] && {
      rm -f "$DIALOG"
      return
    } || {
      echo "Větev else"
    }
    
    9.8.2012 13:09 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: BASH - Jednořádkové podmínky

    To je právě to, na co jsem narážel v první odpovědi:

      A && B || C
    

    lze použít pouze v případě, kdy máme jistotu, že B nemůže selhat (jako v tom vašem příkladu), jinak se provedou B i C.

    9.8.2012 13:21 Kit
    Rozbalit Rozbalit vše Re: BASH - Jednořádkové podmínky
    Zajímavé chování. Stačí na konec B přidat příkaz, který zaručeně neselže a C se neprovede ani když uvnitř B něco selže. Chová se to pak podle původního předpokladu.
    9.8.2012 14:09 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: BASH - Jednořádkové podmínky

    To chování je logickým důsledkem pravidel, podle kterých ty operátory fungují:

    • v konstrukci A && B se druhý příkaz provádí, pokud první vrátí nulu
    • v konstrukci A || B se druhý příkaz provádí, pokud první vrátí nenulu
    • v obou případech je návratovou hodnotou složeného příkazu návratová hodnota posledního příkazu, který se provedl
    • asociuje se zleva

    Bohužel nadužívání ve skriptech často vede k tomu, že kdo ta pravidla nezná, bere operátory jako if-then a else a pak může být nemile překvapen.

    9.8.2012 18:59 MM
    Rozbalit Rozbalit vše Re: BASH - Jednořádkové podmínky
    Hm, ať se dívám jak se dívám, tak přepinač -o jsem fakt nikde nenašel.. Nějaký zdroj? A jak se zapisuje třeba OR ? Díky

    http://www.abclinuxu.cz/clanky/navody/bash-iii
    9.8.2012 19:48 Kit
    Rozbalit Rozbalit vše Re: BASH - Jednořádkové podmínky
    -o v daném místě není přepínač, ale operátor OR.
    9.8.2012 19:56 MM
    Rozbalit Rozbalit vše Re: BASH - Jednořádkové podmínky
    Dík, a operátor AND se zapisuje jak?
    9.8.2012 20:04 Kit
    Rozbalit Rozbalit vše Re: BASH - Jednořádkové podmínky
    Nepřipadáš si trapně? Když zadáš
    man test
    tak je to hned na první stránce společně s dalšími operátory.
    9.8.2012 20:18 MM
    Rozbalit Rozbalit vše Re: BASH - Jednořádkové podmínky
    Konečně kur*a pořádný manuál !! Dík, akorát teda slovo test se mi s tím nějak nespojuju :-)
    9.8.2012 20:26 Kit
    Rozbalit Rozbalit vše Re: BASH - Jednořádkové podmínky
    Hranaté závorky jsou jen syntaktický cukr pro příkaz test.
    Pavel Stárek avatar 10.8.2012 12:11 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
    Rozbalit Rozbalit vše Re: BASH - Jednořádkové podmínky
    info bash je ještě možná lepší.
    Kdo chce, hledá způsob; kdo nechce, hledá důvod.
    10.8.2012 17:14 Sten
    Rozbalit Rozbalit vše Re: BASH - Jednořádkové podmínky
    Anebo rovnou
    man [
    :-)

    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.