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í
×
    včera 21:00 | Nová verze

    Po 9 týdnech vývoje od vydání Linuxu 7.0 oznámil Linus Torvalds vydání Linuxu 7.1. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a časem také na Linux Kernel Newbies.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | Zajímavý software

    Cheat Engine (Wikipedie) je s verzí 7.7 k dispozici už také pro Linux. Jedná se o proprietární skener/debugger paměti používaný především k cheatování v počítačových hrách.

    Ladislav Hagara | Komentářů: 0
    13.6. 15:22 | IT novinky

    Vláda USA nařídila společnosti Anthropic pozastavit přístup k modelům Fable 5 a Mythos 5 pro všechny cizince, včetně zaměstnanců Anthropicu.

    Ladislav Hagara | Komentářů: 6
    13.6. 02:22 | Nová verze

    Společnost Murena představila (YouTube) novou verzi 4.0 mobilního operačního systému /e/OS (Wikipedie) založeného na Androidu a LineageOS bez aplikací a služeb od Googlu.

    Ladislav Hagara | Komentářů: 0
    12.6. 16:33 | Bezpečnostní upozornění

    V Arch User Repository (AUR) bylo kompromitováno přes 400 opomíjených balíčků (jejich seznam). Útočník do nich začlenil škodlivý npm balíček atomic-lockfile, který krade citlivá data uživatelů. Publikována byla předběžná analýza spouštěného malwaru deps.

    Ladislav Hagara | Komentářů: 11
    12.6. 11:33 | Nová verze

    Homebrew, správce balíčků nejen pro macOS, byl vydán ve verzi 6.0.0 (seznam změn). Hlavními novinkami jsou bezpečnostní mechanismus tap trust kvůli důvěryhodnosti závislostí, vylepšení sandboxingu na Linuxu, interní JSON API nebo zlepšení výkonu.

    |🇵🇸 | Komentářů: 0
    12.6. 03:33 | Bezpečnostní upozornění

    Byla nalezena a 9. června opravena kritická zranitelnost ve FreeBSD v Kernel TLS (KTLS). Pojmenována byla Bumsrakete (FreeBSD-SA-26:26.ktls, CVE-2026-45257). Lokální neprivilegovaný uživatel může přepisovat soubory, ke kterým má právo pouze pro čtení. Přepsáním setuid binárky a jejím spuštěním může získat roota. Na všech verzích od verze 13.0 vydané v dubnu 2021.

    Ladislav Hagara | Komentářů: 2
    11.6. 14:11 | Komunita

    Vývojáři open source operačního systému ReactOS (Wikipedie), jehož cílem je kompletní binární kompatibilita s aplikacemi a ovladači pro Windows, se na síti 𝕏 pochlubili, že ReactOS zvládne počítačovou hru Half-Life.

    Ladislav Hagara | Komentářů: 5
    11.6. 10:44 | Nová verze

    Byla vydána nová verze 4.8 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Využíván je Free Pascal Compiler (FPC) 3.2.2.

    Ladislav Hagara | Komentářů: 0
    11.6. 04:44 | Nová verze

    Apple container dospěl do verze 1.0.0. Jedná se o open source nástroj pro spouštění linuxových kontejnerů na macOS postavený nad containerization. Napsaný je v programovacím jazyce Swift a optimalizovaný pro Apple silicon.

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