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:44 | Zajímavý software

    Byla oznámena nativní podpora protokolu ACME (Automated Certificate Management Environment) ve webovém serveru a reverzní proxy NGINX. Modul nginx-acme je zatím v preview verzi.

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

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

    Ladislav Hagara | Komentářů: 0
    včera 11:55 | IT novinky

    Společnost Perplexity AI působící v oblasti umělé inteligence (AI) podala nevyžádanou nabídku na převzetí webového prohlížeče Chrome internetové firmy Google za 34,5 miliardy dolarů (zhruba 723 miliard Kč). Informovala o tom včera agentura Reuters. Upozornila, že výše nabídky výrazně převyšuje hodnotu firmy Perplexity. Společnost Google se podle ní k nabídce zatím nevyjádřila.

    Ladislav Hagara | Komentářů: 5
    včera 04:33 | Bezpečnostní upozornění

    Intel vydal 34 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20250812 mikrokódů pro své procesory řešící 6 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána nová verze 1.25 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 1
    12.8. 13:44 | Nová verze

    Byla vydána beta verze Linux Mintu 22.2 s kódovým jménem Zara. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze novou XApp aplikaci Fingwit pro autentizaci pomocí otisků prstů nebo vlastní fork knihovny libAdwaita s názvem libAdapta podporující grafická témata. Linux Mint 22.2 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 0
    12.8. 13:00 | IT novinky

    Provozovatel internetové encyklopedie Wikipedie prohrál v Británii soudní spor týkající se některých částí nového zákona o on-line bezpečnosti. Soud ale varoval britského regulátora Ofcom i odpovědné ministerstvo před zaváděním přílišných omezení. Legislativa zpřísňuje požadavky na on-line platformy, ale zároveň čelí kritice za možné omezování svobody slova. Společnost Wikimedia Foundation, která je zodpovědná za fungování

    … více »
    Ladislav Hagara | Komentářů: 2
    12.8. 12:55 | Nová verze

    Byla vydána verze 2.0.0 nástroje pro synchronizaci dat mezi vícero počítači bez centrálního serveru Syncthing (Wikipedie). Přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 3
    12.8. 12:33 | IT novinky

    Americký prezident Donald Trump se v pondělí osobně setkal s generálním ředitelem firmy na výrobu čipů Intel Lip-Bu Tanem. Šéfa podniku označil za úspěšného, informují agentury. Ještě před týdnem ho přitom ostře kritizoval a požadoval jeho okamžitý odchod. Akcie Intelu v reakci na schůzku po oficiálním uzavření trhu zpevnily asi o tři procenta.

    Ladislav Hagara | Komentářů: 14
    11.8. 04:55 | Nová verze

    Byl vydán Debian GNU/Hurd 2025. Jedná se o port Debianu s jádrem Hurd místo obvyklého Linuxu.

    Ladislav Hagara | Komentářů: 6
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (52%)
     (18%)
     (4%)
     (5%)
     (3%)
     (1%)
     (1%)
     (16%)
    Celkem 390 hlasů
     Komentářů: 23, poslední 4.8. 13:01
    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: 418×
    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.