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 14:11 | IT novinky

    V Tchaj-peji probíhá počítačový veletrh COMPUTEX 2023. Firmy představují své novinky. Nvidia například superpočítač DGX GH200 AI.

    Ladislav Hagara | Komentářů: 1
    dnes 12:11 | Nová verze

    Vyšla nová verze XMPP (Jabber) klienta Gajim. Nejvýznamnější novinkou je integrace OMEMO pluginu přímo do jádra aplikace, takže již není třeba plugin samostatně instalovat. Přehled dalších novinek je dostupný na oficiálních stránkách. Gajim je vytvořen v jazyce Python s využitím knihovny GTK a vedle Linuxu jej lze vyzkoušet i na platformách MacOS a Windows.

    sonicpp | Komentářů: 0
    včera 22:22 | Komunita

    Komunita KDE představila stránku KDE for Developers pro vývojáře používající KDE aplikace. Postupně byly představeny stránky pro umělce KDE for Creators, děti KDE for Kids a vědce KDE for Scientists.

    Ladislav Hagara | Komentářů: 5
    včera 16:00 | IT novinky Ladislav Hagara | Komentářů: 0
    28.5. 22:00 | IT novinky Ladislav Hagara | Komentářů: 0
    28.5. 13:55 | Komunita

    Na itch.io probíhá Linux Game Jam 2023. Zapojit se a přihlásit hru běžící na Linuxu lze do 6. června do 01:59. Zahrát si lze hry z loňského ročníku.

    Ladislav Hagara | Komentářů: 3
    27.5. 18:55 | IT novinky

    Na Steamu lze získat zdarma počítačové hry Warhammer 40,000: Gladius - Relics of War a Hue. Na Epic Games Storu počítačovou hru Fallout: New Vegas - Ultimate Edition.

    Ladislav Hagara | Komentářů: 10
    26.5. 08:00 | Komunita

    WordPress (Wikipedie), open source systém pro správu webového obsahu (CMS), zítra slaví 20 let. První verze byla vydána 27. května 2003.

    Ladislav Hagara | Komentářů: 46
    25.5. 21:44 | Nová verze

    Deno (Wikipedie), běhové prostředí (runtime) pro JavaScript, TypeScript a WebAssembly, bylo vydáno ve verzi 1.34. Přehled novinek v poznámkách k vydání. Od verze 1.6 lze pomocí "deno compile" sestavit ze zdrojových kódů binární spustitelný soubor. Nově "deno compile" podporuje také npm balíčky.

    Ladislav Hagara | Komentářů: 9
    25.5. 20:22 | Komunita

    Aktuálně posledním 14. open source filmem od Blender Studia je CHARGE (YouTube). Dokončuje se 15. film Pet Projects. Začíná se pracovat na 16. filmu s pracovním názvem Project Gold.

    Ladislav Hagara | Komentářů: 6
    Obnovovací frekvenci obrazovky (LCD) preferuji
     (73%)
     (21%)
     (4%)
     (2%)
    Celkem 783 hlasů
     Komentářů: 13, poslední 25.5. 07:25
    Rozcestník

    Dotaz: Bash - vkládání argumentů z proměnné

    12.7.2013 11:18 skvedo | skóre: 1
    Bash - vkládání argumentů z proměnné
    Přečteno: 325×
    Zdravím,

    ve skriptu chci spustit grep s tím, že vzor se vkládá z proměnné, která je načtena ze souboru.

    Můj příkaz:
    grep $DEFINEKEY soubor
    v proměnné DEFINEKEY mám uloženo:
    -e "access-list"
    Po spuštění nedostanu žádný výstup (odpovídající řádky v souboru jsou)

    pokud pro kontrolu provedu příkaz:
    grep $DEFINEKEY soubor
    tak dostanu očekávaný výstup:
    grep -e "access-list" soubor
    Pokud tento příkaz zapíšu přímo do skriptu, tak vše funguje jak má.

    Nesetkal se s tím už někdo? Předem děkuji za rady.

    Odpovědi

    12.7.2013 11:34 Kit
    Rozbalit Rozbalit vše Re: Bash - vkládání argumentů z proměnné
    Problém je v tom, že -e "access-list" jsou dva parametry (klíč a hodnota), které však předáváš jako jeden.
    12.7.2013 12:55 skvedo
    Rozbalit Rozbalit vše Re: Bash - vkládání argumentů z proměnné
    V tom problém nebude. Do souboru jsem si pro testování přidal řádky:
    aa xx
    aa zz
    v souboru, ze kterého je načtena proměnná DEFINEKEY jsem změnil její obsah na:
    -e xx -e zz
    
    a funguje to správně.

    Pokud zadám do proměnné:
    -e aa zz
    tak se dle očekávání interpretuje zz jako název souboru.

    Když do proměnné vložím jedno z:
    -e "aa zz"
    -e 'aa zz'
    dostanu chybovou hlášku:
    grep: zz": Adresář nebo soubor neexistuje
    nebo
    grep: zz': Adresář nebo soubor neexistuje
    
    Problém je v podivné interpretaci uvozovek, které tam teď nejsou potřeba, ale v budoucím použití asi budou a na ten grep ještě navazuje sed kterému jsou argumenty plněny stejně a tam jednotlivé vzory už obsahují mezery.
    12.7.2013 15:10 pako
    Rozbalit Rozbalit vše Re: Bash - vkládání argumentů z proměnné
    Problém je v podivné interpretaci uvozovek, které tam teď nejsou potřeba, ale v budoucím použití asi budou
    Pokud to potrebujete kvuli podivnych znaku, tak je potreba je osetrit pri vkladani do promenne.

    Pokud vam jde o mezery (jakehokoliv druhu), takje to trochu horsi. "${VAR}" nepomuze, protoze pak budete mit problem, ktery popisoval Kit. Asi nejprehlednejsi pak bude pouzvat pole:
    $ cat soubor
    1111
    2222
    3333
    4444
    1221
    "22"33
    "x y z"abc
    $ PAR=("-e" '"x y z"' "-e" "33")
    $ grep "${PAR[@]}" soubor
    3333
    "22"33
    "x y z"abc
    
    na ten grep ještě navazuje sed
    Pro pana krale a proc? Proc to nevyresit rovnou v tom sedu? Nebo tim nejak testujete forkovani, popr. jde o obfuskaci retezenim?
    12.7.2013 15:49 Kit
    Rozbalit Rozbalit vše Re: Bash - vkládání argumentů z proměnné
    ... a na ten grep ještě navazuje sed ...
    V tom případě je ten grep zřejmě zbytečný.
    12.7.2013 14:44 pako
    Rozbalit Rozbalit vše Re: Bash - vkládání argumentů z proměnné
    Nikoliv. Problem je v rom, ze to preda vcetene tech uvozovek. Tedy nehleda vyraz access-list. ale "access-list".

    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.