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í
×

    včera 16:55 | IT novinky

    Facebook má nové logo. Poznáte rozdíl?

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

    Byla vydána nová verze 7.2 v Javě napsané aplikace pro komplexní návrh rozmístění nábytku a dalšího vybavení v interiérech Sweet Home 3D. Vyzkoušet lze online verzi. Před dvěma týdny vyšla placená verze pro chytré telefony a tablety (App Store, Google Play).

    Ladislav Hagara | Komentářů: 0
    22.9. 14:11 | Pozvánky

    Zítra 23. září proběhne Maker Faire Mladá Boleslav, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    22.9. 13:33 | Nová verze

    Byla vydána beta verze Ubuntu 23.10 s kódovým názvem Mantic Minotaur. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 23.10 mělo vyjít 12. října 2023.

    Ladislav Hagara | Komentářů: 9
    22.9. 11:22 | Zajímavý článek

    Josef Průša informuje o nových verzích firmwarů pro tiskárny Original Prusa, 5.0.0 pro MK4 a MK3.9 a 5.1.0-alpha1 pro MINI, díky kterým jsou tiskárny mnohem rychlejší.

    Ladislav Hagara | Komentářů: 0
    22.9. 09:11 | Nová verze

    Mastodon (Wikipedie), svobodná federalizovaná sociální síť, byl vydán ve verzi 4.2. Z novinek je vypíchnuto vylepšené vyhledávání.

    Ladislav Hagara | Komentářů: 8
    22.9. 08:55 | Zajímavý článek

    Ben Hawkes publikoval pod názvem The WebP 0day analýzu bezpečnostní chyby CVE-2023-4863 v knihovně WebP / libwebp s řadou zajímavých odkazů. Pravděpodobně se jedná o stejnou chybu jako BLASTPASS (CVE-2023-41064 a CVE-2023-41061) v macOS, iOS, iPadOS a watchOS. Zpracování (zobrazení) speciálně připraveného obrázku nebo přílohy vedlo ke spuštění útočníkem připraveného kódu.

    Ladislav Hagara | Komentářů: 0
    22.9. 08:11 | Zajímavý článek

    Myš je pro kočku: Prohlížeče je dalším dílem ze série článků Myš je pro kočku, kde Edvard Rejthar ukazuje, jak lze počítač ovládat bez myši. Používáte ve webových prohlížečích zkratky Ctrl+(Shift)+Tab, Ctrl+(Shift)+PgDn/PgUp, F6, (Shift)+Alt+Enter nebo F7?

    Ladislav Hagara | Komentářů: 9
    21.9. 14:33 | Nová verze

    Vývojáři mobilní Datovky prosí o pomoc s testováním beta verze mobilní Datovky s novým grafickým rozhraním, podporou pro tmavý režim a podporou pro VoDZ. Aplikace je zatím dostupná pouze pro zařízení Android a je umístěna v samostatném instalačním kanále Datovka Beta. Tento kanál slouží pro testovaní nové funkcionality a grafického uživatelského rozhraní. Datovka Beta se instaluje jako samostatná aplikace s vlastními daty, která

    … více »
    Ladislav Hagara | Komentářů: 0
    21.9. 13:22 | Zajímavý software

    Harlequin byl vydán ve verzi 1.0.0. Jedná se o TUI (Text User Interface) IDE (Integrated Development Environment) k systému pro správu SQL OLAP databází DuckDB.

    Ladislav Hagara | Komentářů: 0
    Knihy s linuxovou tematikou
     (19%)
     (15%)
     (50%)
     (27%)
    Celkem 272 hlasů
     Komentářů: 11, poslední 17.9. 19:19
    Rozcestník

    Dotaz: Je vstup číslo nebo *?

    14.5.2011 11:24 Pepa
    Je vstup číslo nebo *?
    Přečteno: 361×
    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: 72 | 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: 72 | 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: 72 | 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.