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 02:16 | Bezpečnostní upozornění

    Zranitelnost CVE-2026-98432 s CVSS 9.8 odhalila AI od společnosti Anthropic. Jedná se o kritickou chybu v implementaci MPTCP (multipath TCP). Debian vydal patche 16.10. a 22.10., ale např. Ubuntu je zatím bez opravy. Více informací na The Hacker News.

    Max | Komentářů: 1
    včera 23:22 | Zajímavý software

    Na Slovensku vznikla úplne nová rally hra, ktorá je zadarmo a funguje vo Windowse, Linuxe či na Macu. Greenie Rally má viac ako 50 tratí a vozidiel, šampionáty či turnaje. Má retro feeling a imituje automobilové hry z prelomu tisícročí. Vyskúšate prejsť všetky mapy na Škode 130RS?

    Stanislav Hoferek | Komentářů: 1
    včera 14:33 | Komunita

    Do základního systému NetBSD -current byl přidán nový editor atto jako alternativa k editorům vi a xedit.

    Ladislav Hagara | Komentářů: 2
    včera 14:11 | IT novinky

    Společnost System76 představila kompaktní 11litrový Thelio Prime Desktop. S procesorem AMD Ryzen 9000. S Pop!_OS 24.04 LTS s desktopovým prostředím COSMIC nebo Ubuntu 24.04 LTS.

    Ladislav Hagara | Komentářů: 1
    včera 13:44 | Humor

    Čínská státní televize pozastavila vysílání španělské La Ligy a čínské internetové platformy omezily obsah s Kylianem Mbappém poté, co slavný fotbalista ve francouzském pořadu The Bridge mluvil o svém oblíbeném memu, v němž je jeho tvář vložena do portrétu zobrazujícího diktátora Mao Ce-tunga. 'Můj oblíbený mem je ten, na kterém dali můj obličej na čínského diktátora. To mě opravdu rozesmívá. S přáteli ho používám pořád' řekl,

    … více »
    Pendrekama do nich❗ | Komentářů: 5
    včera 13:22 | IT novinky

    Při příležitosti oslav Dne vzniku samostatného československého státu (28. října) byly uděleny medaile Za zásluhy tvůrci aplikace Záchranka Filipu Maleňákovi, vědci v oblasti umělé inteligence Tomáši Mikolovovi a Olze Štěpánkové, vědkyni zabývající se kybernetikou, robotikou a strojovým učením, průkopnici v oblastech výuky a využití umělé inteligence v medicínském inženýrství.

    Pendrekama do nich❗ | Komentářů: 3
    včera 01:33 | IT novinky

    Apple představil nový iPad mini, iMac s čipem M6, 14palcový MacBook Pro s čipem M6 a MacBook Pro s PROLED XDR displejem – první Mac s dotykovým ovládáním.

    Ladislav Hagara | Komentářů: 5
    28.10. 23:22 | Zajímavý projekt

    Nedávno představený projekt mapSTL.com řeší budoucnost. 𝕏: "Netušil jsem, kolik patentů na generování map existuje. Existují patenty na generování fantasy map 🫣. Cokoliv je na 3D tiskárnu a tvoří to produkt, bude to mít patenty. Tak bacha na to!" … více »

    Ladislav Hagara | Komentářů: 3
    28.10. 18:55 | Nová verze

    Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.4 (𝕏). Přehled novinek a vylepšení v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    28.10. 18:22 | Bezpečnostní upozornění

    Byla objevena zranitelnost Tailworm v Tailscale a Headscale umožňující lokální eskalaci práv přihlášeného uživatele. Následně byla v Tailscale v opravené verzi 1.104.4+ změněna architektura aplikace. Viz příspěvek na blogu Tailscale.

    vencour | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2941 hlasů
     Komentářů: 34, poslední 26.10. 08:24
    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: 549×
    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ákno • Nahoru

    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.