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 05:33 | Zajímavý článek

    Sny o designu GNOME Shellu, článek s náhledy a videi, představuje dlouhodobou vizi týmu GNOME pro vylepšení uživatelského rozhraní GNOME Shellu. Zatímco nedávné verze přinášely spíše drobné úpravy, designéři nyní plánují zásadnější změny.

    Ladislav Hagara | Komentářů: 0
    dnes 05:22 | Nová verze

    Byla vydána nová verze 10.5 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Nově vyžaduje podporu ECC (Elliptic Curve Cryptography) v libcrypto, včetně křivky NISTP521.

    Ladislav Hagara | Komentářů: 0
    dnes 05:11 | Nová verze

    Byla vydána nová verze 10.6 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. S novými obrazy pro Orange Pi 4 Pro, Orange Pi Zero 3W a Odroid M1/M1S/M2. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | IT novinky

    Námořní drony používané elitními jednotkami britského královského námořnictva tajně posílaly údaje do Číny. Stroje vybavené čínskými komponenty měly být využívány pro vojenské operace na Blízkém východě. Kamery na dálkově řízených průzkumných člunech K3 Scout byly vybavené součástkami, které bez vědomí britského námořnictva odesílaly informace do spojeného zařízení v Číně. Britské námořní síly využívaly flotilu námořních dronů

    … více »
    Ladislav Hagara | Komentářů: 2
    včera 13:33 | IT novinky

    Alza.cz nabízí herní AlzaPC s předinstalovaným Linuxem (YouTube), konkrétně s linuxovou distribucí Bazzite (Wikipedie).

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

    Squeak (Wikipedie), open source implementace programovacího jazyka a prostředí Smalltalk, byl vydán ve verzi 6.1. Přehled novinek v poznámkách k vydání.

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

    V Linuxu v KVM byla nalezena a v upstreamu již byla opravena kritická zranitelnost Zapscape aneb CVE-2026-64561. Root na hostovaném počítači (virtuální stroj) může obejít izolaci a získat plnou kontrolu nad hostitelským systémem (DoS útok nebo vzdálené spuštění kódu s právy roota). Na obou hlavních architekturách – Intel i AMD. Zranitelnost v Linuxu existovala 6 let (od července 2020 do července 2026).

    Ladislav Hagara | Komentářů: 0
    10.8. 19:00 | IT novinky

    Počítačová hra Knytt napsaná v Multimedia Fusion 2 byla vydána před 20 lety. Při této příležitosti byl dnes představen moderní port (YouTube) této plošinovky na současné operační systémy pod názvem Knytt Classic. Je zdarma k dispozici na Steamu a GOG.com.

    Ladislav Hagara | Komentářů: 0
    10.8. 16:00 | IT novinky

    Americká technologická společnost Meta Platforms představila nový model umělé inteligence (AI) Muse Glimmer. Model je menší než přední modely AI od konkurence a má běžet přímo na počítačích uživatelů. Meta model zpřístupní jako open source, tedy otevřený software. Nový model je navržen tak, aby zvládal takzvané agentní úkoly na počítačích se spotřebitelskou grafickou kartou. Klade si tak za cíl uspokojit poptávku po systémech AI, které běží přímo na zařízeních uživatelů.

    Ladislav Hagara | Komentářů: 8
    10.8. 12:11 | Pozvánky

    V pátek 28. srpna 2026 se v pražském Karlíně uskuteční již osmý Mobilní Hackday. Akce začne v 10:00 a potrvá až do večera. Setkání proběhne v prostorách SUSE Linux, s.r.o. na adrese Křižíkova 148/34, Praha 8 – Karlín. Nejbližší zastávkou je Křižíkova, kam se lze dostat tramvají i metrem. Na programu budou například novinky z posledních měsíců, možnosti, jak si zjednodušit práci s LLM/AI, a také nová linuxová distribuce BengalOS, včetně … více »

    David Heidelberg | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (18%)
     (30%)
     (6%)
     (6%)
     (2%)
     (15%)
     (23%)
    Celkem 2369 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: bash -while cyklus-

    3.3.2009 12:05 Terka | skóre: 13
    bash -while cyklus-
    Přečteno: 2031×

    cat soubor|while read FROM TO
    do
      echo $FROM $TO
    done

    echo $FROM $TO #   1. tohle uz netiskne proc?

    2. jak promennou dostat ven z cyklu aby posledni prikaz chodil?

    diky!

    Odpovědi

    3.3.2009 14:28 Jirka
    Rozbalit Rozbalit vše Re: bash -while cyklus-

    Protože FROM TO je na konci cyklu prázdné (konec souboru), čili nemá co tisknout. :-)

    4.3.2009 20:12 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    A navíc je to za rourou, tedy v subshellu, takže proměnné se z něj nevyexportují ven.
    3.3.2009 15:47 ...
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    Tu promennou ven z cyklu nedostanes, protoze roura | pousti subshell a nelze propagovat promenne ze subshellu do nadrazeneho shellu. Musis si udelat pomocny soubor a do nej promenne vypsat a po skonceni cyklu zase precist.
    3.3.2009 17:38 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    [babjak][~/tmp/while][17:35:14] ls
    input.txt  script.sh*
    [babjak][~/tmp/while][17:37:17] cat input.txt
    a b
    c d e
    [babjak][~/tmp/while][17:37:19] ./script.sh input.txt
    From: 'a' To: 'b'
    From: 'c' To: 'd e'
    [babjak][~/tmp/while][17:37:28] cat script.sh
    #! /bin/sh
    
    while read FROM TO ; do
            echo "From: '${FROM}' To: '${TO}'"
    done < "${1}"
    
    [babjak][~/tmp/while][17:37:33]
    
    3.3.2009 17:42 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    Sorry, prehliadol som posledny riadok toho skriptu, takze mi unikla podstata problemu.
    3.3.2009 17:49 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    Takze este raz a radostnejsie:
    [babjak][~/tmp/while][17:43:58] cat input.txt
    a b
    c d e
    [babjak][~/tmp/while][17:44:00] ./script.sh input.txt
    Inside From: 'a' To: 'b'
    Inside From: 'c' To: 'd e'
    Outside From: 'c' To: 'd e'
    [babjak][~/tmp/while][17:44:09] cat script.sh
    #! /bin/sh
    
    while read FROM TO ; do
            echo "Inside From: '${FROM}' To: '${TO}'"
            X="${FROM}"
            Y="${TO}"
    done < "${1}"
    
    echo "Outside From: '${X}' To: '${Y}'"
    
    
    Problem je v tom, ze v povodnom skripte v skutocnosti ten posledny riadok skutocne vypysuje obsah premennych FROM a TO. Treba si vsak uvedomit, ze ked sa slucka while read ... vykonala posledny krat, bol dosiahnuty koniec suboru a do tychto premennych sa nacitalo ... chvila prekvapenia ... nic.
    3.3.2009 19:26 .
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    pletes se. ty promenne byly prazdne kvuli tomu, ze nebyly definovane. resp. byly, ale v subshellu, proto se nepropagovaly do nadrazeneho shellu.
    3.3.2009 19:40 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    Nepletiem. Boli to dva nezavisle problemy.

    Prvy problem bol, ze pri pouziti rury sa skutocne nepodari "vyexportovat" von ani to X a Y, ani to FROM a TO, presne ako si pisal.

    Druhy problem bol v tom, ze pri poslednom volani podmienky cyklu while sa podmienka este vyhodnoti, t.j. FROM a TO sa priradia, v tomto pripade na prazdne hodnoty, ale telo cyku sa nevykona, lebo podmienka je nepravdiva. Takze posledny vypis "z vnutra" obsahuje hodnoty FROM a TO nacitane pri predposlednom volani read, zatial co zaverecny vypis obsahuje hodnoty FROM a TO z posledneho volania read.

    Za domacu ulohu si to mozes overit. Ja som to samozrejme urobil predtym ako som vyssie uvedene riesenie poslal.

    3.3.2009 21:02 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    Přesně tak, jsou tu dva problémy. K tomu subshellu doplním:

    Když máte jen jednoduchý cat, tak není důvod si komplikovat situaci, použijte prostě přesměrování vstupu, jak bylo naznačeno. Pro přehlednost lze uvést přesměrování i na začátku příkazu:
    < soubor while read ... ;do ...
    Pokud máte něco složitějšího (sed, nebo nějakou delší rouru), lze ve vykonávání programu pokračovat v subshellu, včetně jeho výhod (tj. proměnných):
    dlouha | roura | (
    while read ...; do ... zde je cyklus, v něm něco nastavím ... ; done
    ...
    zde je další zpracování -- ve stejném subshellu 
    ...
    používám nastavené proměnné z cyklu
    ...
    ) 
    Tímto se vyhnete použití dočasných souborů.
    In Ada the typical infinite loop would normally be terminated by detonation.
    4.3.2009 20:09 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    Pokud máte něco složitějšího (sed, nebo nějakou delší rouru), lze V bashi jako vstup použít i výstup z nějakého subprocesu, pro ilustraci:
    while read line; do
      echo $line
      last=$line
    done < <(cat /etc/passwd | cut -d : -f 1)
    echo last: $last
    
    4.3.2009 20:56 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    Dobrý tip. Ale opět bych prohodil pořadí.
    In Ada the typical infinite loop would normally be terminated by detonation.
    5.3.2009 09:31 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    Zkusit to můžete, ale asi to nepůjde.
    5.3.2009 19:18 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    Co na tom nepůjde?
    $ < <(cat /etc/passwd | cut -d : -f 1) tac
    ftp
    messagebus
    nobody
    pht
    root
    
    In Ada the typical infinite loop would normally be terminated by detonation.
    6.3.2009 06:48 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    Ten cyklus while, který jste ovšem nějak zapomněl :)
    6.3.2009 12:15 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    Aha, tak to je docela divné.
    In Ada the typical infinite loop would normally be terminated by detonation.
    6.3.2009 16:03 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    Ona to není jediná věc co se před cyklus "nedává"; například jednořádkový heredoc
    while read; do
      echo $REPLY;
    done <<<"hokus pokus"
    také neobrátíte.
    7.3.2009 07:37 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    Podle návodu to je takhle,
    The following redirection operators may precede or appear anywhere within a simple command or may follow a command.
    tj. před lze dát jen v případě, že to není cyklus, závorka, apod. Čili by nefungoval ani mnou navrhovaný jednoduchý "< soubor", což je škoda.
    In Ada the typical infinite loop would normally be terminated by detonation.
    3.3.2009 22:30 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: bash -while cyklus-
    Na prenos premennych zo subshellu sa da este pouzit konstrukcia "set --":
    set -- `echo a b c`
    A premenne $1 $2 a $3 budu obsahovat a, b, c.
    If you hold a Unix shell up to your ear, you can you hear the C.
    4.3.2009 09:47 Terka | skóre: 13
    Rozbalit Rozbalit vše Re: bash -while cyklus-

    diky vsem !!!

    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.