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 15:33 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.8.

    Ladislav Hagara | Komentářů: 0
    dnes 14:22 | IT novinky

    Herní studio Hangar 13 vydalo novou Mafii. Mafia: Domovina je zasazena do krutého sicilského podsvětí na začátku 20. století. Na ProtonDB je zatím bez záznamu.

    Ladislav Hagara | Komentářů: 0
    dnes 13:22 | IT novinky

    Operátor O2 má opět problémy. Jako omluvu za pondělní zhoršenou dostupnost služeb dal všem zákazníkům poukaz v hodnotě 300 Kč na nákup telefonu nebo příslušenství.

    Ladislav Hagara | Komentářů: 4
    dnes 05:55 | IT novinky

    Společnost OpenAI představila GPT-5 (YouTube).

    Ladislav Hagara | Komentářů: 0
    dnes 05:00 | Nová verze

    Byla vydána (𝕏) červencová aktualizace aneb nová verze 1.103 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.103 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

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

    Americký prezident Donald Trump vyzval nového generálního ředitele firmy na výrobu čipů Intel, aby odstoupil. Prezident to zdůvodnil vazbami nového šéfa Lip-Bu Tana na čínské firmy.

    Ladislav Hagara | Komentářů: 7
    včera 16:55 | Nová verze

    Bylo vydáno Ubuntu 24.04.3 LTS, tj. třetí opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na Discourse.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Nová verze

    Byla vydána verze 1.89.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | IT novinky

    Americká technologická společnost Apple uskuteční v USA další investice ve výši sta miliard dolarů (2,1 bilionu korun). Oznámil to ve středu šéf firmy Tim Cook při setkání v Bílém domě s americkým prezidentem Donaldem Trumpem. Trump zároveň oznámil záměr zavést stoprocentní clo na polovodiče z dovozu.

    Ladislav Hagara | Komentářů: 4
    včera 04:55 | Nová verze

    Zálohovací server Proxmox Backup Server byl vydán v nové stabilní verzi 4.0. Založen je na Debianu 13 Trixie.

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

    Dotaz: Echo příkazu je v pořádku, jeho vykonání ale už ne

    Zdeněk Zámečník avatar 13.8.2008 18:29 Zdeněk Zámečník | skóre: 26
    Echo příkazu je v pořádku, jeho vykonání ale už ne
    Přečteno: 330×
    Už hezkých pár hodin bojuji s tímto skriptem:
    #!/bin/bash
    EXCLUDE_LIST=./usr/share/doc,./usr/share/man/*,./var/cache/apt/archives
    
    EXCLUDE_LIST_DU=\"$(echo $EXCLUDE_LIST | sed 's/,/" --exclude "/g')\"
    du . -hs --exclude $EXCLUDE_LIST_DU
    
    Jednoduše má vypsat velikost aktuálního adresáře s výjimkami v EXCLUDE_LIST. Ale on to neudělá. Vypisuje stále velikost bez ohledu na exclude.

    Pokud poslední řádek upravím takto:
    echo "du . -hs --exclude $EXCLUDE_LIST_DU"
    tak je vidět, že příkaz je poskládán správně:
    du . -hs --exclude "./usr/share/doc" --exclude "./usr/share/man/*" --exclude "./var/cache/apt/archives"
    
    Když ho takto vezmu a spustím, je výsledek správný. Hádal bych, že mi tam někde haprují uvozovky, ale už si s tím takto hraju dost dlouho a stále nic...

    Za každé nakopnutí předem díky

    Řešení dotazu:


    Odpovědi

    David Watzke avatar 13.8.2008 18:59 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Echo příkazu je v pořádku, jeho vykonání ale už ne
    Chyba je v tom, že když echo vypíše i ty uvozovky, tak to znamená, že se tu pak spustí jako kdyby byly escapovaný. Nejjednodušší řešení když už to máš takhle rozdělaný by bylo:
    eval "du . -hs --exclude $EXCLUDE_LIST_DU"
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    Zdeněk Zámečník avatar 13.8.2008 19:10 Zdeněk Zámečník | skóre: 26
    Rozbalit Rozbalit vše Re: Echo příkazu je v pořádku, jeho vykonání ale už ne
    Bezva! Jede to, a jak by to šlo udělat bez escapování? Něco jako toto:
    EXCLUDE_LIST=./usr/share/doc,./usr/share/man/*,./var/cache/apt/archives
    EXCLUDE_LIST_DU=$(echo $EXCLUDE_LIST | sed 's/,/" --exclude "/g')
    du . -hs --exclude "$EXCLUDE_LIST_DU"
    
    mi taky nešlape. Je to jen teoretická otázka ;) Každopádně díky!
    David Watzke avatar 14.8.2008 11:39 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Echo příkazu je v pořádku, jeho vykonání ale už ne
    Osobně bych použil --exclude-from=soubor a nacpal ty cesty do souboru, ale když už bych to dělal takhle, tak by mělo jít něco jako:
    EXCLUDE_LIST=./usr/share/doc,./usr/share/man/*,./var/cache/apt/archives
    EXCLUDE_LIST_DU=$(for d in $EXCLUDE_LIST; do echo -n "--exclude \"$d\" "; done)
    IFS=,
    eval du . -hs --exclude $EXCLUDE_LIST_DU
    Což považuju za lepší řešení, ale tomu problému s escapováním se nevyhneš, pokud v tý proměnný budeš očekávat i cesty s mezerama atp.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    Tarmaq avatar 13.8.2008 19:05 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Echo příkazu je v pořádku, jeho vykonání ale už ne
    nestacilo by toto?
    EXCLUDE_LIST=,./usr/share/doc,./usr/share/man/*,./var/cache/apt/archives
    du . -hs $(echo $EXCLUDE_LIST | sed 's/,/ --exclude /g')
    
    Don't panic!
    Zdeněk Zámečník avatar 13.8.2008 19:12 Zdeněk Zámečník | skóre: 26
    Rozbalit Rozbalit vše Re: Echo příkazu je v pořádku, jeho vykonání ale už ne
    Nestačilo. Nevím, v čem přesně tkví tvá pointa, nejspíš narážíš na uvozovky, ale věř tomu, že tohle fungovat nebude - kvůli regulérnímu výrazu (*)...
    13.8.2008 22:29 petr
    Rozbalit Rozbalit vše Re: Echo příkazu je v pořádku, jeho vykonání ale už ne
    Staci pred hvezdicku dat \\ (dve lomitka)

    PS: * v bashi neni regularni vyraz, tak se rika necemu jinemu (a opravdu za tim l je a) * a ? v shellu se rika zolikove znaky ;-)

    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.