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:22 | Zajímavý projekt

    Jack Dorsey představil (𝕏) open source týmovou komunikační platformu Buzz (GitHub) s cílem snížit závislost na Slacku a GitHubu.

    Ladislav Hagara | Komentářů: 1
    včera 23:00 | Nová verze

    Poštovní klient Thunderbird byl vydán v nové verzi 153 s kódovým názvem Meadow. Jedná se o ESR (Extended Support Release) vydání. Přehled novinek v poznámkách k vydání. Vylepšuje OAuth. Thundermail lze používat bez instalace doplňku.

    Ladislav Hagara | Komentářů: 0
    včera 22:22 | Zajímavý článek

    AI tento rok naplno vtrhla do vývoje softwaru a výrazně ovlivňuje také open source projekty. Jiří Eischmann v příspěvku Jak mění AI open source na svém blogu rozebírá několik trendů, které v open source v poslední době v souvislosti s AI pozoruje, a jak tyto trendy svět otevřeného softwaru mění (Inflace projektů, Zahlcení kontroly, Klesající motivace zveřejňovat kód).

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

    Evropská komise (EK) vyměřila americké internetové společnosti Google pokutu 890 milionů eur (21,5 miliardy Kč) za porušení unijního nařízení o digitálních trzích (DMA). Firma se podle unijní exekutivy provinila tím, že ve vyhledávači Google Search upřednostňovala vlastní služby a že podnikům ukládala omezení, která jim bránila nasměrovat spotřebitele k alternativním, často levnějším nákupním kanálům na platformě Google Play.

    … více »
    Ladislav Hagara | Komentářů: 2
    22.7. 19:44 | IT novinky

    Samsung na akci Galaxy Unpacked July 2026 (YouTube) představil své nové telefony Galaxy Z Fold8 Ultra, Fold8 a Flip8, hodinky Galaxy Watch Ultra2 a Watch9 a chytré brýle ve spolupráci s Gentle Monster a Warby Parker.

    Ladislav Hagara | Komentářů: 0
    22.7. 16:11 | IT novinky

    Po pěti letech vývoje vyšla česká počítačová hra Scarlet Deer Inn (ProtonDB). Scarlet Deer Inn je vyšívaná temná středověká pohádka. Zatímco život ve zdánlivě obyčejné vesnici se točí kolem běžných povinností a sousedských drbů, v podzemí se skrývají zlověstná tajemství.

    Ladislav Hagara | Komentářů: 2
    22.7. 13:33 | IT novinky

    Představen byl Raspberry Pi Touch Display 2 s uhlopříčkou 10 palců a rozlišením 1200 × 1920 pixelů. Cena je 80 dolarů.

    Ladislav Hagara | Komentářů: 4
    22.7. 13:22 | Komunita

    RPCS3 (Wikipedie), tj. open source emulátor Sony PlayStation 3, snížil minimální požadavky. Nově jsou podporovány starší grafické karty ATI Radeon řady HD 2000, 3000 a 4000 z let 2007 až 2009. Na PC běží už 75 % všech her pro PlayStation 3. V budoucnu bude RPCS3 fungovat bez firmwaru z PS3. V RPCS3 byl implementován systémový modul cellSysmodule (𝕏).

    Ladislav Hagara | Komentářů: 2
    22.7. 11:00 | Zajímavý software

    Vyšel open-source nástroj winetop (MIT) — nativní CLI/TUI pro sledování a ukončování Wine, Proton, Lutris, Heroic a Bottles sezení. Seskupuje procesy podle WINEPREFIX / Steam AppId, umí bezpečně zabít jen hru (včetně Steam reaperu) a nabízí i skriptovatelné příkazy (list, kill, orphans, …). Balíčky jsou mimo jiné na crates.io, Copru (dnf copr enable kovariadam/winetop), PPA ppa:kovariadam/winetop a AUR (winetop-bin).

    kovariadam | Komentářů: 0
    22.7. 02:44 | IT novinky

    Ve spolupráci společností OpenAI a Work Louder byla představena (𝕏) hardwarová klávesnice Codex Micro pro práci s AI agenty. Cena klávesnice je 230 dolarů.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (17%)
     (30%)
     (5%)
     (6%)
     (2%)
     (15%)
     (24%)
    Celkem 2216 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    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: 498×
    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.