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 00:33 | Nová verze

    Bazzite (Wikipedie), tj. linuxová distribuce vycházející z Fedora Linuxu a optimalizována pro hraní počítačových her, byla vydána ve verzi 45. S Open Gaming Collective (OGC) jádrem a novým Easy Anti-Cheatem pro Linux (EAC Linux v2).

    Ladislav Hagara | Komentářů: 0
    včera 22:11 | Bezpečnostní upozornění

    MikroTik zveřejnil vlastní bezpečnostní upozornění potvrzující, že zranitelnost linuxového jádra postihuje také RouterOS 7. Jde o use-after-free při zpracování IPv4 TCP spojení s IP options. Zranitelnost se týká provozu směřujícího na TCP službu samotného routeru, nikoli paketů, které router pouze přeposílá. Opraveno v long-term od 7.24.6, v stable od 7.25.1 a devel od 7.26beta5.

    vencour | Komentářů: 0
    včera 17:00 | Bezpečnostní upozornění

    Ve správci balíčků APT, používaném v Debianu a odvozených distribucích, byla nalezena a opravena kritická zranitelnost CVE-2026-109518. Vzdálený útočník může obejít ověření stažených balíčků pomocí přesměrování a dočasných chyb HTTP serveru.

    Ladislav Hagara | Komentářů: 1
    včera 13:11 | IT novinky

    Nejvyšší kontrolní úřad (NKÚ) vydal zprávu o finančním řízení prostředků EU v ČR (pdf). Dočíst se lze například, že přes 8 miliard korun na digitální vzdělávání nepřineslo naplnění žádného z prioritních cílů programu. Peněžní prostředky z fondů EU sice byly vynaloženy formálně v souladu s právními předpisy, avšak s minimálním nebo neprokazatelným dopadem na proklamované cíle ve vzdělávání. Na Metodickém portálu RVP.CZ bylo ke konci

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

    Emulátor terminálu kitty (Wikipedie, GitHub) byl vydán v nové verzi 0.50.

    Ladislav Hagara | Komentářů: 2
    včera 09:00 | Bezpečnostní upozornění

    Vývojáři C-Kermit oznámili několik dlouhodobě přítomných zranitelností. Patří mezi ně buffer overflow v Telnet/FTP klientovi a command injection v Kermit serveru. Dotčené verze: C-Kermit 11.0.514 a starší. Fix: 11.1.515 [oss-security].

    vencour | Komentářů: 0
    včera 02:44 | Nová verze

    Byla vydána nová verze 3.2.8 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    3.11. 16:55 | Nová verze

    Projekt openSUSE dnes, 3. listopadu 2026, oficiálně vydal openSUSE Leap 16.1, novou verzi své stabilní linuxové distribuce. Novinkou je také Immutable Mode, který nahrazuje dosavadní samostatnou distribuci openSUSE Leap Micro. Podrobnosti o novém vydání najdete v oficiálním oznámení nebo v českém překladu oznámení. Instalační obrazy jsou již dostupné na get.opensuse.org. Vydání společně oslavíme v pátek ve virtuálním baru a na … více »

    lkocman | Komentářů: 0
    3.11. 16:00 | Nová verze

    Bylo oznámeno vydání Fedora Linuxu 45. Ve finální verzi vychází šest oficiálních edic: Fedora Workstation a Fedora KDE Plasma Desktop pro desktopové, Fedora Server pro serverové, Fedora Cloud pro cloudové nasazení, Fedora CoreOS pro ty, kteří preferují neměnné systémy a Fedora IoT pro internet věcí. Vedle nich jsou k dispozici také další atomické desktopy, spiny a laby. Podrobný přehled novinek v samostatných článcích na stránkách

    … více »
    Ladislav Hagara | Komentářů: 1
    3.11. 15:44 | Zajímavý článek

    Vědci z MIT CSAIL představili koncept 'weight-space programming' a názorně předvedli, že pokročilé jazykové modely SI dokážou přímo číst a upravovat váhy neuronových sítí. Studie ukazuje, že modely nejen dokážou identifikovat účel sítí z pouhého nahlédnutí do jejich číselných vah, ale mohou i cíleně opravovat chyby a nedostatky, například GPT-6 Astra se změnou pouhých 0,016% vah open-weight modelu Qwen3.5-0.8B podařilo odstranit

    … více »
    👻 | Komentářů: 9
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2976 hlasů
     Komentářů: 34, poslední 26.10. 08:24
    Rozcestník

    Dotaz: Bash - funkce ktera vrati hodnotu

    10.7.2008 08:57 anon123 | skóre: 35 | blog: ganomi
    Bash - funkce ktera vrati hodnotu
    Přečteno: 2390×

    Chtel bych vedet, jak se to dela spravne. Procetl jsem par Bash Programming Howtos, ale nejak jsem nenasel odpoved.

    Chci dosahnout aby mi funkce vratila hodnotu.

    Vetsinou jsou vsude priklady, jak vratit ciselnou hodnotu, ale to nepracuje na string.

    Zajima me tedy, jak vratit string/character hodnotu z funkce a jestli je to dobra practice?

    Zda se vam, ze to delam spravne nebo ne:

    #!/bin/bash
    
    f_change () {
    local changedWord=""
    
    echo -e "give me word: "
    read changedWord
    echo $changedWord
    
    eval $1=$changedWord
    }
    
    
    test="super"
    echo -e "var before: $test"
    f_change test
    echo -e "Returned from function: $test"
    
    

    Odpovědi

    10.7.2008 09:40 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
    Rozbalit Rozbalit vše Re: Bash - funkce ktera vrati hodnotu
    Nevím, k čemu má toto sloužit, ale skript je v zásadě správně, jen místo eval… napište:
    test "$1" = "$changedWord"
    
    Návratová hodnota funkce či jiného příkazu se ukládá do proměnné $?, můžete ji přidat do posledního výpisu. Pravdivost je trochu neobvykle reprezentována hodnotou 0 a nepravdivost 1. Je tomu tak proto, že nula je návratovým kódem příkazů provedených úspěšně, zatímto nenulové hodnoty značí nesplnění úkonu, chybu.
    10.7.2008 13:22 anon123 | skóre: 35 | blog: ganomi
    Rozbalit Rozbalit vše Re: Bash - funkce ktera vrati hodnotu

    Samozrejme je to zjednoduseny priklad. Jen me zajima, jak pasnout string a return string. Protoze u ciselnych hodnot se pouziva return, ale to na string nejak nefungovalo.

    10.7.2008 13:29 anon123 | skóre: 35 | blog: ganomi
    Rozbalit Rozbalit vše Re: Bash - funkce ktera vrati hodnotu

    Jo jeste bych se chtel zeptat, proc "test". Jakou to ma funkci. Kdyz me odkaze na cteni, tak je to ok. Nic takoveho jsem na webu nenasel. Hledal jsem "bash programming function".

    Mozna jeste jaky je rozdil v eval a test v tomto pripade. Vsechny ukazky scriptu co jsem nasel uvadely jen eval.

    10.7.2008 14:29 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
    Rozbalit Rozbalit vše Re: Bash - funkce ktera vrati hodnotu

    To je proto, že jsem si neuvědomil, že chcete, aby funkce vracela řetězec. Po té mnou navrhované změně by funkce porovnávala zadaný parametr s řetězcem získaným ze standardního vstupu, což je něco úplně jiného. Vracet řetězec není možné. Jednou z cest je to, co už tu bylo psáno:

    function vstup() {
      echo -n "Zadej něco: " 1>&2
      read str
      echo $str
    }
    HODNOTA="$(vstup)"
    echo "Byl zadán tento řezězec: \"${HODNOTA}\""
    

    Je třeba přesměrovat první echo na chybový výstup, protože funkce na standardní výstup pošle načtenou hodnotu.

    Postupovat lze samozřejmě i jinak, totiž „změnit hodnotu proměnné“.

    function vstup() {
      echo -n "Zadej něco: " 1>&2
      read $1
    }
    vstup HODNOTA
    echo "Byl zadán tento řezězec: \"${HODNOTA}\""
    
    10.7.2008 11:14 pnemec | skóre: 8 | blog: jotter
    Rozbalit Rozbalit vše Re: Bash - funkce ktera vrati hodnotu
    pokud vim tak jedine pres echo, nebo globalni promena.
    function test(){
    echo "result"
    }
    local v=$(test)
    10.7.2008 13:25 anon123 | skóre: 35 | blog: ganomi
    Rozbalit Rozbalit vše Re: Bash - funkce ktera vrati hodnotu

    Na spouste webech se pise prave pres tu globalni promenou. Ale to se mi zda dost neprakticke. Chci mit funkci univerzalni, bez toho aniz by byla zavisla na globalni promene. Ale nevim jestli se to v Bash programovani da. Teda asi jo, viz muj priklad, ale nevim, jestli je to OK.

    V C, Jave, atd, je normalni pasnout a vratit promene.

    Nejsem velky programator, ale na vejsce jsem pres to prosel.

    10.7.2008 14:35 diverman | skóre: 32 | blog: život s tučňáčkem
    Rozbalit Rozbalit vše Re: Bash - funkce ktera vrati hodnotu
    vyzkousel si to reseni od 'pnemeca'? je funkcni, nevim, co resis.
    deb http://ftp.cz.debian.org/debian jessie main contrib non-free
    10.7.2008 12:33 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash - funkce ktera vrati hodnotu
    Ak chces nastavovat navratovu hodnotu, tak na konci fcie zavolas return a potom sa na to odkazujes ako na beznu navratovu hodnotu pomocou $?
    f() {
      return $1
    }
    
    f 5
    [[ $? == 5 ]] && echo hura
    
    alebo ako radi kolega pnemec vyssie. Bash bezne nerozlisuje medzi textovou a ciselnou hodnotou. Preto mi v prikalde funguje test $? == 5 (textove porovnanie) a fungovalo by aj $? -eq 5 (cislene porovnanie). V podstate vsetko je text (ak nie je deklarovane inak), dokym sa k tomu neprisutpuje ako k cislu. Doporucujem man bash.
    If you hold a Unix shell up to your ear, you can you hear the C.
    10.7.2008 13:21 anon123 | skóre: 35 | blog: ganomi
    Rozbalit Rozbalit vše Re: Bash - funkce ktera vrati hodnotu

    Dovolim si s vami nesouhlasit

    Priklad, ktery jste uvedl plati jen pro ciselne hodnoty. Vyzkousejte si pasnout do funkce nejake slovo a return to nevrati.

    Prave proto se tu ptam. Na internetu jsem toho precetl furu, ale moc nic nemuzu sehnat, protoze vsude jsou priklady jen na ciselne hodnoty.

    Samozrejme to co jsem napsal je jen zjednoduseny priklad priklad.

    Jedine co jsem nejak dal dohromady, je to co jsem tu napsal jako priklad. Proto jsem se zeptal jestli je to spravne, nebo jestli se to da udelat nejak lepe.

    Co takhle, kdyby jste si to vyzkousel :-). Jinak diky za snahu.

    Fuky avatar 10.7.2008 13:34 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Bash - funkce ktera vrati hodnotu

    Funkce může vracet pouze celočíselnou hodnotu, pro přirovnání je to asi stejné jako kdyby jsi chtěl, aby návratová hodnota programu byl řetězec. Dívej se na to tak, že Bash funkce je program a její návratová hodnota informuje o jeho úspěšném/neúspěšném ukončení.

    Jinak jak Ti radí výše, lze získat i řetězec pomocí echo.

    Co se týče hledání a příkladu, tak ten je přímo tady na Ábíčku Funkce a příkazy ;-)

    10.7.2008 13:38 dasd
    Rozbalit Rozbalit vše Re: Bash - funkce ktera vrati hodnotu
    Podle me nemuze promena $? obsahovat jine znaky nez (mala) cisla (definice bashe, je to totiz chybovy kod). Na vraceni stringu se obvykle pouziva konstrukce typu:
    f() { echo $1; }
    A=$(f xxx)
    echo Return code: $?
    echo Return value: $A
    
    10.7.2008 13:58 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash - funkce ktera vrati hodnotu
    Pokial v bashi nevidis rozdiel medzi hodnotou, ktoru funkcia vracia (ci uz textova alebo ciselna) a medzi "navratovou hodnotou/kodom" funkcie (prikazu, programu,...), tak si fakt budes musiet ten manual precitat.
    If you hold a Unix shell up to your ear, you can you hear the C.

    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.