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 | Nová verze

    Webový prohlížeč Waterfox (Wikipedie), fork Firefoxu, byl vydán ve verzi 6.7.0. Postaven je na jádru Gecko ESR 153.

    Ladislav Hagara | Komentářů: 0
    dnes 11:22 | Nová verze

    Multiplatformní open source voxelový herní engine Luanti byl vydán ve verzi 5.17.0. Podrobný přehled novinek v changelogu. Přidána byla základní podpora gamepadů. Opraveno bylo několik zranitelností. Původně se jedná o Minecraftem inspirovaný Minetest v říjnu loňského roku přejmenovaný na Luanti.

    Ladislav Hagara | Komentářů: 0
    dnes 11:00 | IT novinky

    Americká technologická společnost Apple loni v Irsku na daních zaplatila 17 miliard dolarů (zhruba 350 miliard Kč). To představovalo 40 procent celkové částky, kterou firma odvedla na dani z příjmů po celém světě. Vyplývá to z účetních výkazů podniku. Platbu výrazně zvýšilo rozhodnutí Soudního dvora EU z roku 2024, podle něhož měl Apple doplatit Irsku na daních 13 miliard eur (313 miliard Kč).

    Ladislav Hagara | Komentářů: 0
    dnes 09:55 | Zajímavý projekt

    CrossPoint Reader je open-source alternativní firmware pro menší, levné čtečky, vybavené cca čtyřpalcovým e-ink displejem. Zahrnuje aplikaci pro čtení e-knih a webový server pro konfiguraci a přenos souborů po síti. Verze 1.0 byla vydána v únoru 2026. Recenze současné verze 1.5 vyšla na Linux Weekly News.

    |🇵🇸 | Komentářů: 0
    21.8. 05:00 | Nová verze

    Byla vydána verze 1.98.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
    21.8. 04:22 | Nová verze

    Byla vydána nová verze 7.1 (YouTube) svobodného open source redakčního systému WordPress. Kódové jméno Mary Lou bylo vybráno na počest americké jazzové klavíristky Mary Lou Williams (YouTube).

    Ladislav Hagara | Komentářů: 0
    20.8. 19:11 | Nová verze

    Bun (Wikipedie), tj. běhové prostředí (runtime) a toolkit pro JavaScript a TypeScript, alternativa k Node.js a Deno, byl vydán ve verzi 1.4. Představení novinek také na YouTube. Bun byl přepsán z programovacího jazyka Zig do Rustu. Pomocí Claude Fable 5.

    Ladislav Hagara | Komentářů: 0
    20.8. 12:33 | Nová verze

    Vývojáři KDE na Mastodonu oznámili vydání balíku aplikací KDE Gear 26.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    20.8. 04:11 | IT novinky

    Společnost PINE64 kvůli nedostatku a vysokým cenám DRAM a eMMC dočasně pozastavuje výrobu linuxových zařízení. Výroba zařízení jako PineTime, PineVoice a Pinecil pokračuje.

    Ladislav Hagara | Komentářů: 0
    20.8. 02:55 | IT novinky

    Společnost Stripe se dohodla na akvizici společnosti OpenRouter. Za 7,5 miliardy dolarů.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (19%)
     (30%)
     (7%)
     (6%)
     (2%)
     (15%)
     (22%)
    Celkem 2474 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Dotaz: Náhrada za eval

    9.11.2012 11:56 Orlando
    Náhrada za eval
    Přečteno: 568×
    Zdravim, hledam reseni s náhradou za eval, prej je nebezpecne, poradite? Jinak nevim proc tam ta funkce eval je, kdyz se nedoporucuje pouzivat. Dekuji
    function foo ()
    {
    eval $1="$2"
    }
    
    foo "A" "aaaaa"
    echo "$A" #aaaaa
    
    foo "B" "bbbbb"
    echo "$B" #bbbbb

    Odpovědi

    9.11.2012 12:52 luky
    Rozbalit Rozbalit vše Re: Náhrada za eval
    Zdravim, hledam reseni s náhradou za eval, prej je nebezpecne, poradite?
    To je kec. Nebezpecni jsou akorat pitomci.
    9.11.2012 13:26 l4m4
    Rozbalit Rozbalit vše Re: Náhrada za eval
    Každý příkad shellu je nebezpečný. Vlastně používání počítačů je nebezpečné obecně a stěží ho lze doporučit.

    Shell nemá symbolické dereference dávající l-value. Všechna řešení budou nějakým způsobem založena na intepretaci expandovaného kódu shellem -- stejně jako použití eval. Můžeš klidně udělat
    declare -g $1="$2"
    
    když nechceš použít eval, ale odolnější vůči neošetřeným argumentům to bude jen marginálně.
    pavlix avatar 9.11.2012 13:59 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Náhrada za eval
    Vlastně používání počítačů je nebezpečné obecně a stěží ho lze doporučit.
    +1
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    9.11.2012 15:01 Orlando
    Rozbalit Rozbalit vše Re: Náhrada za eval
    Dík, declare s přepinačem -g? Jsem se díval do manuálu ale takový přepinač tam není a hlásí to i chybu.
    9.11.2012 15:08 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Náhrada za eval
    bash$ bash --version
    GNU bash, version 4.2.37(1)-release (x86_64-pc-linux-gnu)
    
    The -g option forces variables to be created or modified at the global scope, even when declare is executed in a shell function. It is ignored in all other cases.
    9.11.2012 15:14 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Náhrada za eval
    Pro starší Bash < 4.2 lze místo deklarování nových proměnných použít ke stejnému účelu předdefinované globální asociativní pole.
    9.11.2012 15:58 Ondrej
    Rozbalit Rozbalit vše Re: Náhrada za eval
    Mě by se to taky šiklo ale vůbec to nefunguje. Jako by se to snažilo bash přímo spustit. Poradí někdo? Dík
    MENU=("aaa|bbb"
          "ccc|ddd"
          "eee|fff")
    
    rozdel_pole {
              OLD_IFS=$IFS
              IFS=$'|'
              ARRAY=( $3 )
              IFS=$OLD_IFS
    
              ARRAY_0=$( echo ${ARRAY[0]} )
              ARRAY_1=$( echo ${ARRAY[1]} )
    
              declare $1
              declare $2
    
              $1="$ARRAY_0"
              $2="$ARRAY_1"
    }
    
              rozdel_pole "PRVNI" "DRUHA" "${MENU[1]}"
    
              echo $PRVNI $DRUHA
    
              rozdel_pole "PETR" "PAVEL" "${MENU[2]}"
    
              echo $PETR $PAVEL
    
    
    /home/ucimse.sh: line 46: PRVNI=ccc: command not found
    /home/ucimse.sh: line 47: DRUHA=ddd: command not found
    
    /home/ucimse.sh: line 46: PETR=eee: command not found
    /home/ucimse.sh: line 47: PAVEL=fff: command not found
    9.11.2012 20:46 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Náhrada za eval
    Jistě, bash provede substitucia výsledek se snaží spustit, nikoliv interpretovat aby došlo k přiřazení (k tomu lze právě použít eval). Takže vaše řádky
    declare $1
    declare $2
     
    $1="$ARRAY_0"
    $2="$ARRAY_1"
    nahraďte buď (varianta s eval) řádky
    eval $1="$ARRAY_0"
    eval $2="$ARRAY_1"
    nebo (varianta bez eval)
    declare -g $1="$ARRAY_0"
    declare -g $2="$ARRAY_1"
    

    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.