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:44 | Komunita

    Vývojáři GIMPu nově vydávají oficiální snap balíčky GIMPu. Jsou sestavovány přímo v jejich CI (Continuous Integration) systému.

    Ladislav Hagara | Komentářů: 1
    včera 15:22 | Nová verze

    Správce sbírky fotografií digiKam byl vydán ve verzi 8.8.0. Jedná se o převážně opravné vydání provázené aktualizacemi knihoven. Novinky zahrnují implicitní použití systémového barevného profilu monitoru, import/export hierarchie štítků, editační nástroj rozostření aj.

    |🇵🇸 | Komentářů: 0
    17.10. 13:22 | IT novinky

    Steve Jobs a superpočítač Cray-1 budou vyobrazeny na pamětních jednodolarových mincích vyražených v příštím roce v rámci série Americká inovace. Série má 57 mincí, tj. 57 inovací. Poslední 4 mince budou vyraženy v roce 2032.

    Ladislav Hagara | Komentářů: 13
    17.10. 12:22 | Pozvánky

    Byl zveřejněn průběžně aktualizovaný program konference OpenAlt 2025 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Konference proběhne o víkendu 1. a 2. listopadu v prostorách FIT VUT v Brně. Vstup je zdarma.

    Ladislav Hagara | Komentářů: 0
    17.10. 12:00 | IT novinky

    Senát včera opětovně nepřijal návrh ústavního zákona, který měl do Listiny základních práv a svobod zakotvit právo občanů platit v hotovosti nebo být off-line. Návrh předložila skupina senátorů již v roce 2023. Senát dnes návrh neschválil, ale ani nezamítl. Pokud by ho přijal, dostala by ho k projednání Sněmovna a vyjádřila by se k němu vláda.

    Ladislav Hagara | Komentářů: 21
    16.10. 23:55 | Nová verze

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 13.0 (Mastodon). Forgejo je fork Gitei.

    Ladislav Hagara | Komentářů: 0
    16.10. 14:22 | Bezpečnostní upozornění

    Společnost Eclypsium se na svém blogu rozepsala o bezpečnostním problému počítačů Framework. Jedná se o zranitelnost v UEFI umožňující útočníkům obejít Secure Boot.

    Ladislav Hagara | Komentářů: 1
    16.10. 02:33 | Nová verze

    Editor kódů Zed (Wikipedie) po macOS a Linuxu s verzí 0.208.4běží také ve Windows.

    Ladislav Hagara | Komentářů: 8
    15.10. 17:44 | IT novinky

    Apple dnes představil 14palcový MacBook Pro, iPad Pro a Apple Vision Pro s novým čipem M5.

    Ladislav Hagara | Komentářů: 38
    15.10. 13:55 | Nová verze

    Debian pro mobilní zařízení Mobian (Wikipedie) byl vydán ve verzi 13 Trixie. Nová stabilní verze je k dispozici pro PINE64 PinePhone, PinePhone Pro a PineTab, Purism Librem 5, Google Pixel 3a a 3a XL, OnePlus 6 a 6T a Xiaomi Pocophone F1.

    Ladislav Hagara | Komentářů: 2
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (46%)
     (20%)
     (20%)
     (23%)
     (18%)
     (21%)
     (18%)
     (18%)
    Celkem 244 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: Je vstup číslo nebo *?

    14.5.2011 11:24 Pepa
    Je vstup číslo nebo *?
    Přečteno: 388×
    Ahoj, řeším problém. chtěl bych ošetřit, zda je vstup číslo nebo znak *... Hledal jsem a téměř vše ,co jsem našel mi nešlo

    Tohle jsem našel tu, nefunguje:
    [[ ${vstup} =~ "^[+-]?[0-9]+$" ]] && echo "$vstup je cislo" || echo "$vstup neni cislo"
    Vůbec to ošetření vstupu ,zda je číslo...
    if [ "$value" -gt "0" -a "$value" -lt "23" ] || [ "$value" = "*" ]; then,
    tohle mi funguje, ale v připadě stringu to sice vyhodnotí správně, ale vyhodí to chybu ilegall number.. co stím?Díky

    Odpovědi

    Jakub Lucký avatar 14.5.2011 11:33 Jakub Lucký | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    if [ "$value" = "*" ] || [ "$value" -gt "0" -a "$value" -lt "23" ];then ...

    Tohle v Bashi funguje bez problémů...
    If you understand, things are just as they are; if you do not understand, things are just as they are.
    14.5.2011 11:51 Pepa
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    ano, ale cokoliv jiného, než to vypíše
    [: 25: Illegal number:
    14.5.2011 12:16 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    Co konkrétně jste zkoušel?
    Jakub Lucký avatar 14.5.2011 15:01 Jakub Lucký | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    No, já myslel spojit oba dva řádky, co tam máte, tedy:
    if [[ ${vstup} =~ "^[+-]?[0-9*]+$" ]];then
        if [ "$value" = "*" ] || [ "$value" -gt "0" -a "$value" -lt "23" ];then
            echo "Vstup OK"
    fi;
    
    Ale myslím, že níže vám někdo nabídne lepší řešení...
    If you understand, things are just as they are; if you do not understand, things are just as they are.
    15.5.2011 12:34 Pepa
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    Konkrétně tohle
    if [[ ${vstup} =~ "^[+-]?[0-9*]+$" ]];then
    mi nefunguje,netuším proč
    14.5.2011 12:03 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?

    Případně rovnou

      if [ "$value" = "*" -o "$value" -gt "0" -a "$value" -lt "23" ]; then
    
    15.5.2011 14:29 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    V bash 4.1.9(2)) mi to hází chybu, připadá mi že mu při vyhodnocování vadí fakt, že by byla hodnota mohla být číslo (ke kterému se váží -gt a -lt) i řetězec (porovnávaný =). Novější [[ ]] fungují.
    bash$ value=*
    bash$ echo "$value"
    *
    
    bash$ if [ "$value" = "*" -o "$value" -gt "0" -a "$value" -lt "23" ]; then echo ok; fi
    bash: [: *: integer expression expected
    
    bash$ if [[ "$value" = "*" || "$value" -gt "0" || "$value" -lt "23" ]]; then echo ok; fi
    bash$ ok
    
    bash$ if [ "$value" = "*" ]; then echo ok; elif [ "$value" -gt "0" -a "$value" -lt "23" ]; then echo ok; fi;
    ok
    
    
    Bilbo avatar 14.5.2011 13:15 Bilbo | skóre: 29
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    Nemělo by to "*" být v jednoduchých uvozovkách? Takhle to může bash expandovat na seznam všech souborů v aktuálním adresáři :)

    Nějak takhle: if [ "$value" = '*' ] || [ "$value" -gt "0" -a "$value" -lt "23" ];then ...
    Big brother is not watching you anymore. Big Brother is telling you how to live...
    14.5.2011 14:21 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    Nemusí. Nemůže.
    14.5.2011 12:15 Miklik | skóre: 27 | Krnov
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    Mně toto funguje

    [user@srv ~]$ if [[ 2443 =~ ^[0-9]+$ ]]; then echo OK; else echo NO; fi
    OK
    [user@srv ~]$ if [[ 2A443 =~ ^[0-9]+$ ]]; then echo OK; else echo NO; fi
    NO
    Netvrdím to, ale možná je to pravda.
    14.5.2011 12:26 Miklik | skóre: 27 | Krnov
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    Případně i toto

    if [[ 2443 =~ ^[+-]?[0-9]+$ ]]; then echo OK; else echo NO; fi
    Netvrdím to, ale možná je to pravda.
    David Watzke avatar 14.5.2011 12:27 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    Tak si ten regex zkus dát do uvozovek. Problém je, že v jedný verzi bashe to šlo dobře a pak se to chování zase změnilo. Je to pěkně na hlavu...
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    14.5.2011 12:32 Miklik | skóre: 27 | Krnov
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    [user@srv ~]$ bash -version
    GNU bash, version 3.00.15(1)-release (i686-redhat-linux-gnu)
    Copyright (C) 2004 Free Software Foundation, Inc.
    [user@srv ~]$ if [[ 2443 =~ "^[+-]?[0-9]+$" ]]; then echo OK; else echo NO; fi
    OK
    [user@srv ~]$ if [[ 24A43 =~ "^[+-]?[0-9]+$" ]]; then echo OK; else echo NO; fi
    NO


    No tak nevím, mě to funguje s uvozovkama i bez.
    Netvrdím to, ale možná je to pravda.
    David Watzke avatar 14.5.2011 13:21 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    Právě proto, že máš pravěkou verzi Bashe, ve který to ještě šlo.
    dave@amd64 ~ $ if [[ 2443 =~ ^[0-9]+$ ]]; then echo OK; else echo NO; fi
    OK
    dave@amd64 ~ $ if [[ 2443 =~ "^[0-9]+$" ]]; then echo OK; else echo NO; fi
    NO
    dave@amd64 ~ $ bash --version
    GNU bash, verze 4.2.10(2)-release (x86_64-unknown-linux-gnu)
    Copyright (C) 2011 Free Software Foundation, Inc.
    Licence GPLv3+: GNU GPL verze 3 nebo novější <http://gnu.org/licenses/gpl.html>
    
    Toto je svobodné programové vybavení: máte právo jej měnit a šířit.
    VEŠKERÉ ZÁRUKY chybí, jak jen zákon dovoluje.
    Myslím, že se to podělalo ve verzi 3.1 nebo 3.2.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    14.5.2011 13:58 Pepa
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    funguje, ale nechápu ten výraz, jak to zapsat tak, aby to bralo včetně "*" .Díky
    14.5.2011 14:04 Pepa
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    ne, tak zpět, v terminálu funguje, ve scriptu ne
    14.5.2011 14:08 Pepa
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    GNU bash, verze 4.1.5(1)-release (x86_64-pc-linux-gnu)
    Copyright © 2009 Free Software Foundation, Inc.
    Licence GPLv3+: GNU GPL verze 3 nebo novější http://gnu.org/licenses/gpl.html
    
    Toto je svobodné programové vybavení: máte právo jej měnit a šířit.
    VEŠKERÉ ZÁRUKY chybí, jak jen zákon dovoluje.
    
    David Watzke avatar 14.5.2011 14:22 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    Určitě to není nějakým překlepem?
    dave@amd64 /tmp $ if [[ 2443 =~ ^[0-9]+$ ]]; then echo OK; else echo NO; fi
    OK
    dave@amd64 /tmp $ echo 'if [[ 2443 =~ ^[0-9]+$ ]]; then echo OK; else echo NO; fi' > x
    dave@amd64 /tmp $ bash x
    OK
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    14.5.2011 14:40 Pepa
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    read value
    			if [[ $value =~ ^[0-9]+$ ]]; then
    				echo true
    			else
                                    echo false
    			fi
    19: [[: not found
    David Watzke avatar 14.5.2011 14:51 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    Tak to nechápu, protože tohle mi funguje správně jak v terminálu, tak ve skriptu.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    Jakub Lucký avatar 14.5.2011 15:02 Jakub Lucký | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    Nepoužíváte náhodou ve skriptu /bin/sh, který je nalinkovaný jinam, než je /bin/bash ?
    If you understand, things are just as they are; if you do not understand, things are just as they are.
    14.5.2011 15:15 Pepa
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    Nevím, co tím myslíte, používám Ubuntu, default, nic zásadního jsem neměnil
    David Watzke avatar 14.5.2011 15:42 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    Jako první řádek ve skriptu uveďte #!/bin/bash, přidejte mu právo ke spuštění (chmod +x skript) a spusťte jej (./skript).
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    frEon avatar 15.5.2011 16:32 frEon | skóre: 40 | Praha
    Rozbalit Rozbalit vše Re: Je vstup číslo nebo *?
    ahoj, jestli je $value cislo otestujes treba takto:
    kleptor@aine:/tmp$ value=666
    kleptor@aine:/tmp$ expr 1 + $value &> /dev/null && echo "je cislo" || echo "neni cislo"
    je cislo
    kleptor@aine:/tmp$ value=blabla
    kleptor@aine:/tmp$ expr 1 + $value &> /dev/null && echo "je cislo" || echo "neni cislo"
    neni cislo
    
    Talking about music is like dancing to architecture.

    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.