abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 17:11 | Nová verze

    Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.

    Ladislav Hagara | Komentářů: 0
    dnes 13:33 | Nová verze

    Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.

    Pavel Křivánek | Komentářů: 4
    dnes 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 30
    včera 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 13
    včera 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 2
    včera 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

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

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

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

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

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

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (73%)
     (9%)
     (2%)
     (16%)
    Celkem 796 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    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: 210×
    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.