abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 2
    včera 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 6
    včera 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 34
    25.4. 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 13
    25.4. 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 3
    25.4. 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    25.4. 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

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

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    25.4. 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    25.4. 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (74%)
     (8%)
     (2%)
     (16%)
    Celkem 816 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    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: 403×
    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.