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 23:22 | Nová verze

    Byla vydána Beta 1 verze KDE 6 (Plasma, Frameworks a Gear) postavené na Qt 6. Testovat lze například v distribuci KDE Neon. Stabilní verze je plánována na konec února 2024. Předchozí velké vydání 5 vylo vydáno téměř před 10 lety (červenec 2014).

    Ladislav Hagara | Komentářů: 0
    dnes 23:00 | Komunita

    Open-source webmail Roundcube se připojil k balíku aplikací Nextcloudu. Převzetí firmou Nextcloud ale plánováno není, pouze integrace a podpoření vývoje.

    Fluttershy, yay! | Komentářů: 0
    dnes 18:44 | IT novinky

    Stability AI představila SDXL Turbo, tj. umělou inteligenci pro generování obrázků z textového popisu v reálném čase, viz ukázka na YouTube.

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

    Svobodná webová platforma pro sdílení a přehrávání videí PeerTube (Wikipedie) byla vydána v nové major verzi 6. Přehled novinek i s náhledy a videi v oficiálním oznámení a na GitHubu (6.0.0, 6.0.1).

    Ladislav Hagara | Komentářů: 0
    dnes 11:55 | IT novinky

    S eDoklady lze mít od ledna 2024 občanku v mobilní aplikaci [Digitální a informační agentura – DIA].

    Ladislav Hagara | Komentářů: 1
    dnes 07:00 | IT novinky

    Google představil novou doménu nejvyššího řádu: .meme. Viz například knowyour.meme nebo find.meme.

    Ladislav Hagara | Komentářů: 9
    včera 21:22 | IT novinky

    IKEA představila 3 senzory pro chytrou domácnost: senzor na dveře a okna PARASOLL, bezdrátový pohybový senzor VALLHORN a senzor úniku vody BADRING. Budou kompatibilní s Home Assistant?

    Ladislav Hagara | Komentářů: 1
    včera 20:44 | Nová verze

    Weston, referenční implementace kompozitoru pro Wayland, byl vydán ve verzi 13.0.0. Přehled novinek v oznámení.

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

    Laboratoře CZ.NIC vydaly novou verzi 4.23.0 aplikace Datovka, tj. svobodné multiplatformní desktopové aplikace pro přístup k datovým schránkám a k trvalému uchovávání datových zpráv v lokální databázi. Přidána byla podpora pro velkoobjemové datové zprávy (VoDZ) a pro typy datových schránek PFO_ARCH, PFO_AIAT a PFO_AZI. Další novinkou je pamatování velikosti dialogových oken, pozice ovládacích prvků, šířek sloupců a řazení položek

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 17:33 | Nová verze

    Distribuce Tails specializující se ochranu online soukromí uživatele byla vydána ve verzi 5.20. Mimo jiné aktualizuje Tor Browser (13.0.4) a Thunderbird (115.5), opravuje několik chyb.

    Fluttershy, yay! | Komentářů: 0
    Používáte modální textový editor?
     (75%)
     (3%)
     (2%)
     (20%)
    Celkem 282 hlasů
     Komentářů: 8, poslední 16.11. 22:24
    Rozcestník

    Dotaz: Problém - patrně s result ve funkci

    27.11.2012 22:14 Matonni
    Problém - patrně s result ve funkci
    Přečteno: 163×
    Ahoj, proč mi echo nic nevypíše? Mám tento kousek kódu
    #!/bin/bash
    
    function my_fnc ()
    {
     ARR=()
     ARR+=("1")
     ARR+=("2")
     ARR+=("3")
     ARR+=("4")
     return $ARR 
    }
    
    VAR=( ${my_fnc} )
    
    echo ${VAR[@]}
    Díky za pomoc

    Řešení dotazu:


    Odpovědi

    27.11.2012 22:32 Kit
    Rozbalit Rozbalit vše Re: Problém - patrně s result ve funkci
    Co má dělat příkaz 'function' v Bashi?
    27.11.2012 22:40 l4m4
    Rozbalit Rozbalit vše Re: Problém - patrně s result ve funkci
    function je syntaktický bashismus, nedělá nic.
    Řešení 1× (Michal Vyskočil)
    27.11.2012 22:39 l4m4
    Rozbalit Rozbalit vše Re: Problém - patrně s result ve funkci
    return: return [n]
        Return from a shell function.
        
        Causes a function or sourced script to exit with the return value
        specified by N.  If N is omitted, the return status is that of the
        last command executed within the function or script.
        
        Exit Status:
        Returns N, or failure if the shell is not executing a function or script.
    
    Jasné? Shell není C/Java/whatever. Funkce je spíš takový skriptlet a return vrací status jako ze subprocesu. Vytvářet pole z funkce obecně nedoporučuji. Pro práci s komplexními datovými strukturami není shell vhodný nástroj. You have been warned...

    (a)
    my_func() {
       ARR=(1 2 3 4)
    }
    
    # prostě nastaví ARR
    my_func
    
    (b)
    my_func() {
       echo 1 2 3 4
    }
    
    # nastaví ARR podle na výstup my_func rozdělený na slova
    ARR=($(my_func))
    
    (c) komplexní varianty se změnou IFS a jánevímčeho...
    Řešení 1× (Michal Vyskočil)
    28.11.2012 02:36 Delaunay | skóre: 17 | blog:
    Rozbalit Rozbalit vše Re: Problém - patrně s result ve funkci
    Protože funkce v Bashi se nechovají jako funkce v běžných programovacích jazycích. A nevrací hodnoty jiného typu než návratového stavového kódu (exit -> $?).

    Pokud je i tak potřeba hrát si v Bashi na programování silnější než použití k tomu vhodného nástroje, tak je to samozřejmě možné. Pokud vezmeme, že funkce bude vždy vracet pole, tak můžeme přepsat takto:
    #!/bin/bash
    
    function my_fnc()
    {
        local ARR=()
        ARR+=("1")
        ARR+=("2")
        ARR+=("3")
        ARR+=("4")
        echo ${ARR[@]}
    }
    
    VAR=($(my_fnc))
    echo ${VAR[@]}
    

    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.