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:22 | Nová verze Ladislav Hagara | Komentářů: 0
    dnes 00:55 | Zajímavý projekt

    PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.

    vlk | Komentářů: 0
    včera 19:44 | Nová verze

    Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.

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

    Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.

    Ladislav Hagara | Komentářů: 0
    včera 05:33 | Komunita

    Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.

    Ladislav Hagara | Komentářů: 13
    včera 03:55 | Komunita

    sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.

    Ladislav Hagara | Komentářů: 0
    6.5. 22:11 | Nasazení Linuxu

    Fedora se stala oficiální distribucí WSL (Windows Subsystem for Linux).

    Ladislav Hagara | Komentářů: 2
    6.5. 13:22 | IT novinky

    Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.

    Ladislav Hagara | Komentářů: 1
    6.5. 04:55 | Nová verze

    Byla vydána verze 4.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.

    Ladislav Hagara | Komentářů: 1
    6.5. 00:33 | Komunita

    Podpora Windows 10 končí 14. října 2025. Připravovaná kampaň Konec desítek (End of 10) může uživatelům pomoci s přechodem na Linux.

    Ladislav Hagara | Komentářů: 32
    Jaký filesystém primárně používáte?
     (57%)
     (1%)
     (8%)
     (22%)
     (4%)
     (2%)
     (3%)
     (1%)
     (1%)
     (3%)
    Celkem 549 hlasů
     Komentářů: 25, poslední včera 20:12
    Rozcestník

    Dotaz: BASH - Problém s podmínkou

    20.7.2014 01:54 Martin
    BASH - Problém s podmínkou
    Přečteno: 337×
    Ahoj, potřebuji radu zkušených.

    Mám takovou funkční podmínku
    if [[ ! "$A" =~ "$B" ]]
    then
         echo "Error!"
    else
         echo "Success!"
    fi
    Jenže potřebuji přesně opačné zpracování, odstraním tedy vykřičník
    if [[ "$A" =~ "$B" ]]
    then
         echo "Success!"
    else
         echo "Error!"
    fi
    ale podmínka vypíše vždy Error! Poradí prosím někdo? Děkuji

    Odpovědi

    David Watzke avatar 20.7.2014 10:12 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: BASH - Problém s podmínkou
    Operátor =~ se chová různě, když dáš regex do uvozovek a když ho necháš jenom tak volně... konkrétněji: v uvozovkách to obvykle nefunguje ;-)

    Tohle je ok:
    [[ '-->' =~ ^\-\-\>$ ]]
    [[ '-->' =~ ^--\>$ ]]
    A tohle vše nefunguje jak bys mohl čekat:
    [[ '-->' =~ '^-->$' ]]
    [[ '-->' =~ '^\-\->$' ]]
    [[ '-->' =~ '^\-\-\>$' ]]
    [[ '-->' =~ '^--\>$' ]]
    Abych pravdu řekl, netuším proč a ničí mě to.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    20.7.2014 12:29 Logik
    Rozbalit Rozbalit vše Re: BASH - Problém s podmínkou
    Jo, taky jsem to zjistil a divim se, teď jsem něco zkusil a vypadá to, že u bashe uvozovky escapujou speciální znaky v regexpu.

    Proto asi todle hodí True (0)
    [[ "a" =~ a$ ]] ; echo $?
    [[ "a$" =~ "a$" ]] ; echo $?
    [[ "a$" =~ a"$" ]] ; echo $?
    

    A todle False (1)
    [[ "a$" =~ a$ ]] ; echo $?
    [[ "a$" =~ "a"$ ]] ; echo $?
    

    Jestli tomu tak je, tak je to ovšem zvěrstvo...
    21.7.2014 11:24 marek
    Rozbalit Rozbalit vše Re: BASH - Problém s podmínkou

    Nejhorsi je, ze to drive fungovalo (cca 5let), takze jsem musel prepisovat uz odladene scripty.

    ted to obchazim konstrukci:

    porovnatel="^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)$" ;if [[ "$jmeno" =~ $porovnatel && ${BASH_REMATCH[1]} -lt 256 && ${BASH_REMATCH[2]} -lt 256 && ${BASH_REMATCH[3]} -lt 256 && ${BASH_REMATCH[4]} -lt 256 ]]
    then
         echo "je to ip"
    fi
    
    20.7.2014 10:23 vertigo
    Rozbalit Rozbalit vše Re: BASH - Problém s podmínkou

    Když změním $A, $B na $1, $2 tak to funguje...

    20.7.2014 13:09 RM
    Rozbalit Rozbalit vše Re: BASH - Problém s podmínkou
    Já se raději tomuhle způsobu -- z výše uvedených důvodů -- vyhýbám a používám substituci v běžné podmínce. Třeba tak:
    if [ ! "${B/*$A*/}" ];then echo OK; else echo NOK; fi
    20.7.2014 13:24 RM
    Rozbalit Rozbalit vše Re: BASH - Problém s podmínkou
    Další způsob -- asi nejrychlejší -- je použít echo a grep za if bez závorek:

    if echo "$B" | grep -q "$A"; then ... else ... fi

    Tohle mi přijde ještě fortelnější řešení, než použití výrazu v závorkách se substitucí.
    David Watzke avatar 20.7.2014 14:23 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: BASH - Problém s podmínkou
    Nejrychlejší ti přijde vytvořit subshell a spustit binárku? Oproti built-in funkci? To snad ne.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    20.7.2014 14:52 RM
    Rozbalit Rozbalit vše Re: BASH - Problém s podmínkou
    proto jsem psal asi, nemeril jsem to, muzet to ale zkusit sam a vysledek sem napsat.
    20.7.2014 15:14 RM
    Rozbalit Rozbalit vše Re: BASH - Problém s podmínkou
    jsem to zkusil a je tomu opravdu tak -- oba predchozi zpusoby jsou podstatne rychlejsi. Vydel jsem tenhle způsob hojne ve skriptech v initrd. Toť moje domněnka, ze je to rychlejší, ale není!
    21.7.2014 11:50 RM
    Rozbalit Rozbalit vše Re: BASH - Problém s podmínkou
    -- Ještě jsem to trochu zkoušel, abych si v tom sám udělal jasno. Jako shell se v initrd používá ash, ten je tak prostinkej, že ani tu substituci nezná. Zato spouštět další subshell mu zřejmě nedělá nejmenší problém a s rychlostí je na tom uvedená podmínka stejně nebo o něco lépe než první dvě v bashi. Tolik asi k důvodu, proč se to v initrd používá, plus výhoda nezávislosti na použitém shellu.

    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.