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

    Eric Migicovsky, zakladatel společnosti Pebble, v lednu oznámil, že má v plánu spustit výrobu nových hodinek Pebble s již open source PebbleOS. V březnu spustil předprodej hodinek Pebble Time 2 (tenkrát ještě pod názvem Core Time 2) za 225 dolarů s dodáním v prosinci. Včera představil jejich konečný vzhled (YouTube).

    Ladislav Hagara | Komentářů: 1
    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
    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

    Dotaz: BASH-Problém s proměnnýma mimo funkce

    2.8.2012 14:16 MM
    BASH-Problém s proměnnýma mimo funkce
    Přečteno: 243×
    Ahoj, může mi někdo objasnit tohle? Proč mám na výstupu 2x "Obsah proměnné $VAR je 10"? Přece to poslední echo by mělo vypsat jen "Obsah proměnné $VAR je" nebo ne? Jak tomu jde zamezit a udržet proměnné ve funkcích? Díky
         function fce_a { VAR="10"; }
         function fce_b { fce_a; echo "Obsah proměnné \$VAR je $VAR"; }
         fce_b
         echo "Obsah proměnné \$VAR je $VAR"
    
         Výsledek
         Obsah proměnné $VAR je 10
         Obsah proměnné $VAR je 10
    
    Problém je v tom, že mám nějaké menu ze kterého volám všechny funkce ale proměnné se přepisují jak se jim líbí. Ve finále zadám
    echo "Právě je: $VAR hodin..."
    a na výstupu mám
    Právě je: soubor byl úspěšně zkopírován hodin...
    místo
    Právě je: 12:56:89 hodin...

    Řešení dotazu:


    Odpovědi

    2.8.2012 15:42 NN
    Rozbalit Rozbalit vše Re: BASH-Problém s proměnnýma mimo funkce
    Prvni echo je soucasti funkce kterou volas na tretim radku, druhe echo je na ctvrtem radku..
    2.8.2012 17:44 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: BASH-Problém s proměnnýma mimo funkce
    „Problém je v tom, že mám nějaké menu ze kterého volám všechny funkce ale proměnné se přepisují jak se jim líbí.“

    Ty proměnné jsou proměnné prostředí, tedy jsou to de-facto proměnné globální.
    Zkus si, třeba to napoví:
    #!/bin/bash
    
    VAR=1
    
    function fce_a {
     VAR=2
     echo " ... fce_a: ${VAR}"
     VAR=3
    }
    
    function fce_b {
     local VAR=10
     echo " ... fce_a: ${VAR}"
     VAR=20
    }
    
    echo "* START: ${VAR}"
    echo "* fce_a:"
    fce_a
    echo "* after fce_a: ${VAR}"
    
    echo "* fce_b:"
    fce_b
    echo "* after fce_b: ${VAR}"
    
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    2.8.2012 19:55 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
    Rozbalit Rozbalit vše Re: BASH-Problém s proměnnýma mimo funkce
    A da se s tim neco delat? Ano.

    Pokud vam to nevadi z jinych duvodu, muzete tu funkci volat v pod-shellu a jakekoliv zmeny prostredi, ktere tak v ni provedete, nebudou ve skriptu ze ktereho jste ji volal, videt.

    BASH take zna lokalni promenne, klicove slovo local...

    Jenoze to, co je v puvodnim dotazu ma jeden hak: Pokud byste chtel VAR jako lokalni promennou, tak ji neuvidi uz prvni echo uvnitr druhe funkce. Ale zase globalni promenna je zrejme nezadouci... Jinymi slovy, at se na to divam z jakekoliv strany, neco je tam podezrele.

    V kazdem pripade, pod-shell:
         function fce_a { VAR="10"; }
         function fce_b { fce_a ; echo "Obsah proměnné \$VAR je $VAR"; }
         ( fce_b )
         echo "Obsah proměnné \$VAR je $VAR"
    
    Lokalni promenna:
         function fce_a { VAR="10"; }
         function fce_b { local VAR; fce_a ; echo "Obsah proměnné \$VAR je $VAR"; }
         fce_b
         echo "Obsah proměnné \$VAR je $VAR"
    V techto podobach udelaji to, po cem jste se ptal... jestli je to to, co jste opravdu chtel, je jina otazka. :)

    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.