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 12:11 | Komunita

V Praze na Fakultě informačních technologií ČVUT probíhá openSUSE Conference 2018. Přednášky lze sledovat také online. Aktuální dění lze sledovat na Twitteru. Stisknutím zeleného tlačítka bylo dnes dopoledne vydáno openSUSE Leap 15.0.

Ladislav Hagara | Komentářů: 1
dnes 11:44 | Komunita

Na Steamu probíhá do 28. května akce s názvem Spring Cleaning (Jarní úklid). V rámci akce lze hrát hry Don't Starve Together, Cities: Skylines, Tyranny, Borderlands 2, Middle-earth: Shadow of Mordor a Left 4 Dead 2 běžící na Linuxu zdarma [GamingOnLinux].

Ladislav Hagara | Komentářů: 2
včera 23:23 | Humor

Nová služba České pošty nazvaná Bezpečné úložiště nabízí až 100GB kapacitu pro "bezpečnou správu Vašich dat pod patronací důvěryhodného partnera Česká pošta".

… více »
Lol Phirae | Komentářů: 36
včera 22:14 | Bezpečnostní upozornění

Nova kritická hrozba VPNfilter bola zistená po dlhšiej spolupráce Talos s verejnými i súkromnými bezpečnostnými agentúrami. VPNfilter ohrozuje približne 500 000 zariadení v približne 54 krajinach. Zasiahnutí výrobcovia sú Linksys, MikroTik, NETGEAR, TP-Link (SOHO), QNAP (NAS). Správanie malwaru je nebezpečnej povahy, čo môže v určitých prípadoch spôsobiť škody veľkého rozsahu. Často tieto zariadenia sú na perimetri sieťe bez ochrany.

ewew | Komentářů: 5
včera 21:55 | Pozvánky

CSNOG (Czech and Slovak Network Operators Group), první československé setkání síťových operátorů, se uskuteční 11. a 12. června v Brně. Akce je určena poskytovatelům internetového připojení, síťovým operátorům, provozovatelům registrů, internetovým odborníkům a všem zájemcům o internetové a síťové technologie. Program je zaměřený na odborná, technická témata jako například síťová architektura, bezpečnost sítí, zpracování dat, DNS a další. Nutná je registrace.

Ladislav Hagara | Komentářů: 0
včera 21:33 | Komunita

Na Humble Bundle lze získat počítačovou hru, simulátor hackování, Hacknet (Wikipedie, YouTube) běžící také v Linuxu zdarma. Tentokrát je ke stažení také verze bez DRM a navíc soundtrack. Speciální akce končí v sobotu v 19:00.

Ladislav Hagara | Komentářů: 0
23.5. 20:11 | Zajímavý software

Alexandre Julliard oznámil jménem vývojového týmu Wine vydání první verze 1.0 knihovny vkd3d určené pro překlad volání Direct3D 12 na Vulkan. Zdrojové kódy vkd3d jsou k dispozici pod licencí LGPLv2.1+.

Ladislav Hagara | Komentářů: 1
23.5. 19:33 | Komunita

Dnešním dnem lze účet Firefoxu chránit dvoufázovým ověřováním (2FA). Implementován byl standard TOTP (Time-based One-Time Password).

Ladislav Hagara | Komentářů: 0
23.5. 15:17 | Pozvánky

Od pátku 25. 5. proběhne na Fakultě informačních technologií ČVUT v Praze openSUSE Conference. Můžete se těšit na spoustu zajímavých přednášek, workshopů a také na Release Party nového openSUSE Leap 15.0. Na stejném místě proběhne v sobotu 26. 5. i seminář o bezpečnosti CryptoFest.

Jendа | Komentářů: 0
23.5. 13:33 | Zajímavý software

Drawpile je svobodný multiplatformní program pro kreslení podporující společné kreslení několika uživatelů. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GPLv3+. Drawpile i Drawpile Server jsou ke stažení také ve formátu AppImage. Stačí tedy nastavit právo na spouštění a spustit.

Ladislav Hagara | Komentářů: 0
Používáte pro některé služby inetd?
 (35%)
 (23%)
 (42%)
Celkem 153 hlasů
 Komentářů: 5, poslední 22.5. 16:46
    Rozcestník

    Dotaz: bash -while cyklus-

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

    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: 44 | 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.