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 12:22 | IT novinky

    V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.

    Ladislav Hagara | Komentářů: 0
    dnes 04:55 | Nová verze

    Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.

    Ladislav Hagara | Komentářů: 3
    dnes 03:22 | Nová verze

    Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 19:53 | Bezpečnostní upozornění
    V Xenu objevena zranitelnost. Chyba v mechanismu grant copy umožňuje škodlivému virtuálnímu stroji číst a přepisovat libovolnou paměť jiných VM včetně privilegované domény Dom0. Dotčené verze jsou Xen 4.6 a novější. V upstreamu jsou dostupné patche pro Xen 4.17 až 4.19 a vývojovou větev. Pro starší nepodporované verze 4.6–4.16 nejsou v XSA-523 přiloženy opravy.
    vencour | Komentářů: 0
    včera 16:55 | Nová verze

    Multimediální přehrávač mpv byl vydán ve verzi 0.42.0. Jde o větší balík změn po bezmála roce. Mimo jiné se lépe integruje s Waylandem nebo rozšiřuje podporu DVD/Blu-ray, např. umožňuje přehrávat rovnou obrazy médií (soubory iso).

    ʚĭɞ 🍉 | Komentářů: 0
    včera 12:22 | Nová verze

    Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.5.0. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 12:11 | Nová verze

    Byla vydána (𝕏) nová verze 8.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána verze R14.1.7 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 4
    včera 00:33 | Nová verze

    Bazzite (Wikipedie), tj. linuxová distribuce vycházející z Fedora Linuxu a optimalizována pro hraní počítačových her, byla vydána ve verzi 45. S Open Gaming Collective (OGC) jádrem a novým Easy Anti-Cheatem pro Linux (EAC Linux v2).

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

    MikroTik zveřejnil vlastní bezpečnostní upozornění potvrzující, že zranitelnost linuxového jádra postihuje také RouterOS 7. Jde o use-after-free při zpracování IPv4 TCP spojení s IP options. Zranitelnost se týká provozu směřujícího na TCP službu samotného routeru, nikoli paketů, které router pouze přeposílá. Opraveno v long-term od 7.24.6, v stable od 7.25.1 a devel od 7.26beta5.

    vencour | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2986 hlasů
     Komentářů: 34, poslední 26.10. 08:24
    Rozcestník

    Dotaz: BASH - Jak zjistit jestli obsahuje proměnná jen jednu tečku.

    18.2.2013 13:39 Vávra.V
    BASH - Jak zjistit jestli obsahuje proměnná jen jednu tečku.
    Přečteno: 581×
    Dobrý den, poradíl by někdo jak můžu v bashi zjistit jestli proměnná obsahuje pouze jednu tečku? Děkuji za pomoc

    V.V.

    Odpovědi

    18.2.2013 14:12 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: BASH - Jak zjistit jestli obsahuje proměnná jen jednu tečku.

    Budeme-li předpokládat, že "pouze jednu" znamená "právě jednu", tak třeba

    if [ "${a//[!.]/}" = "." ]; then
        ...
    fi
    

    Pokud to má znamenat "nejvýše jednu", tak např.

    if [ "${a%.*}" = "${a%%.*}" ]; then
        ...
    fi
    
    18.2.2013 14:34 Vávra.V
    Rozbalit Rozbalit vše Re: BASH - Jak zjistit jestli obsahuje proměnná jen jednu tečku.

    Budeme-li předpokládat, že "pouze jednu" znamená "právě jednu", tak třeba

    Pokud to má znamenat "nejvýše jednu", tak např.

    UF, absolutně nevím co jste tím myslel, teď jste mě dostal :D :D :D

    Potřebuji podmínku, která zjistí jestlí nějaká proměnná obsahuje pouze jednu jedinou tečku ;)
    18.2.2013 14:38 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: BASH - Jak zjistit jestli obsahuje proměnná jen jednu tečku.
    "Právě jednu" znamená "počet teček je roven jedné". "Nejvýše jednu" znamená "počet teček je menší nebo roven jedné". Co z toho jste myslel výrazem "pouze jednu", nevím, tak jsem napsal řešení pro obě varianty.
    18.2.2013 14:39 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: BASH - Jak zjistit jestli obsahuje proměnná jen jednu tečku.
    "Pouze jednu" se nejvíc blíží "právě jednu", ale když to takto zdůrazníte tak to trochu evokuje i:
    [[ "$promenna" == "." ]] && echo "Proměnná promenná obsahuje pouze jednu jedinou tečku a njic víc?"
    :D
    18.2.2013 14:47 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: BASH - Jak zjistit jestli obsahuje proměnná jen jednu tečku.
    Mně to zase případalo jako "s jistotou vím, že tam aspoň jedna je, a chci ověřit, jestli jich není víc", pak by bylo jedno, která z variant zadání se vezme - tedy aspoň do chvíle, než by nějaký zákeřný uživatel vytvořil soubor bez tečky v názvu. :-)
    18.2.2013 15:06 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: BASH - Jak zjistit jestli obsahuje proměnná jen jednu tečku.
    Ano původní dotaz jsem také tak pochopil.
    18.2.2013 14:26 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: BASH - Jak zjistit jestli obsahuje proměnná jen jednu tečku.
    Např. pomocí regexp, ale pozor na verzi Bash, pod kterou chete aby to chodilo, pro ty novější verze:
    [[ $promenna =~  ^[^.]*\.[^.]*$  ]] && echo "Proměnná $promenna obsahuje právě jednu tečku."
    Pro starší verze či jiné shelly třeba:
    echo $promenna | grep -q "^[^.]*\.[^.]*$"
    [[ $? -eq 0 ]] && echo "Proměnná $promenna obsahuje právě jednu tečku."
    
    Nebo pokud vám stačí poznat, že proměnná obsohuje nejvýše jednu tečku (tedy jednu nebo žádnou) tak třeba takto:
    [[ ${promenna#*.} == ${promenna##*.} ]] && echo "Promenna $promenna není vícetečková."
    Asi by to šlo i nějak jednoduššeji.
    18.2.2013 14:28 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: BASH - Jak zjistit jestli obsahuje proměnná jen jednu tečku.
    Ano z Michalova přispěvku vidím, že to jde jednoduššeji negací [!.] :)
    18.2.2013 16:46 Vávra.V
    Rozbalit Rozbalit vše Re: BASH - Jak zjistit jestli obsahuje proměnná jen jednu tečku.
    Díky všem za pomoc, musím to pořádně nastudovat ;) Není nad praktické příklady :-(

    BTW: a kdybych potřeboval v budoucnu zjistit jestli proměnná neobsahuje žádnou tečku? Jak by to šlo jednoduše zjistit. Děkuji
    18.2.2013 17:52 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: BASH - Jak zjistit jestli obsahuje proměnná jen jednu tečku.
    [[ $a != *.* ]]
    If you hold a Unix shell up to your ear, you can you hear the C.

    Založit nové vlákno • Nahoru

    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.