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 04:44 | Bezpečnostní upozornění

    Nejnovější X.Org X server 21.1.24 a Xwayland 24.1.13 řeší 2 bezpečnostní chyby.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | Komunita

    Clement "Clem" Lefebvre publikoval souhrn dění v Linux Mintu za červen 2026. Vypíchnuta je vylepšená podpora Waylandu. Už není považována za experimentální. V příští verzi Linux Mintu, plánována je na Vánoce, bude běh Cinnamonu plně podporován na X11 i Waylandu. V květnu na vývoj Linux Mintu přispělo 611 dárců celkovou částkou 19 612 dolarů. Dalších 2 326 patronů přispělo na Patreonu celkovou částkou 5 334 dolarů.

    Ladislav Hagara | Komentářů: 0
    dnes 04:00 | Bezpečnostní upozornění

    V Linuxu v KVM byla nalezena a v upstreamu již byla opravena kritická zranitelnost Januscape aneb CVE-2026-53359. 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 téměř 16 let (od srpna 2010 do června 2026).

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

    Tribunál Soudního dvora Evropské unie dnes zamítl několik žalob, v nichž se americká společnost Apple ohrazovala proti pravidlům fungování velkých technologických společností na unijním trhu. Applu se nelíbilo, že jeho obchod s aplikacemi a operační systém iOS mají podléhat přísnějším povinnostem jen proto, že Brusel firmu považuje za takzvaného gatekeepera, tedy strážce přístupu.

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

    Na WhatsAppu budou postupně v průběhu následujících měsíců zavedena uživatelská jména. Telefonní čísla tak mohou zůstat soukromá. Aktuálně si lze uživatelské jméno rezervovat.

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

    Byl aktualizován TIOBE Index (Wikipedie). Programovací jazyk Rust se poprvé dostal do první desítky tohoto žebříčku popularity programovacích jazyků. Vede Python následovaný C, C++, Java, C#, …

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

    Proton (Wikipedie), tj. fork Wine integrovaný ve Steamu umožňující na Linuxu hrát hry určené pouze pro Windows, byl vydán ve verzi 11.0-1. Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled všech podporovaných her na stránkách ProtonDB

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

    Byly publikovány zdrojové kódy počítačové hry Unturned. Pro nekomerční účely. V plánu je přelicencování pod MIT. Hra Unturned je postavena nad multiplatformním herním enginem Unity.

    Ladislav Hagara | Komentářů: 1
    7.7. 15:55 | IT novinky

    První česká družice navržená a sestavená výhradně studenty se dostala na oběžnou dráhu Země. Družice KOSTKA, kterou vyvinul studentský tým YSpace z Vysokého učení technického v Brně (VUT), dnes odstartovala na palubě rakety Falcon 9 společnosti SpaceX v rámci mise Transporter-17 z kalifornské základny Vandenberg Space Force Base.

    Ladislav Hagara | Komentářů: 0
    7.7. 05:00 | IT novinky

    Po nákresech ovladače Steam Controller a puku společnost Valve na svém GitLabu publikovala projekt Inkterface, tj. podrobný návod (PDF, video v mp4) na sestavení předního panelu s e-papírovým displejem pro Steam Machine pro zobrazování systémových informací. Použity jsou součástky od společnosti Adafruit.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (8%)
     (2%)
     (17%)
     (31%)
     (4%)
     (6%)
     (2%)
     (16%)
     (25%)
    Celkem 2078 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: BASH for vs while

    17.6.2010 11:56 ext3fs
    BASH for vs while
    Přečteno: 1159×
    ahoj,

    vysvetli mi nekdo nasledujici rozdil?
    >> cat soubor
    abc ABD
    def DEF
    
    for STR in `cat soubor`;
    do
        echo $STR
    fone
    
    while read STR;
    do
        echo $STR
    done < soubor
    
    vystup pri pouziti for:
    abc
    ABC
    def
    DEF
    
    vystup pri pouziti while:
    abc ABC
    def DEF
    
    Jak docilit tehoz co u while pri pouziti for?

    Řešení dotazu:


    Odpovědi

    17.6.2010 11:59 Jirka P
    Rozbalit Rozbalit vše Re: BASH for vs while
    Nastav IFS na samotny konec radku.

    Viz promenne shellu
    17.6.2010 13:06 Ant
    Rozbalit Rozbalit vše Re: BASH for vs while
    To asi nepomuze:

    If the value of IFS is a <space>, <tab>, and <newline>, or if it is unset, any sequence of <space>s, <tab>s, or <newline>s at the beginning or end of the input shall be ignored and any sequence of those characters within the input shall delimit a field.

    On chce, aby se mu ten FOR choval jako WHILE, tedy aby 'space' nechapal jako separator, ale 'lf' ('newline') chapal.
    17.6.2010 13:50 Zdenek
    Rozbalit Rozbalit vše Re: BASH for vs while
    No, ale vzdyt presne to pomoci IFS zaridi.
    17.6.2010 17:25 Ant
    Rozbalit Rozbalit vše Re: BASH for vs while
    Huh?

    Podle toho popisu i kdyz nastavi IFS na newline, tak se mu to porad bude zastavovat na mezere.

    for STR in `cat soubor` se zmeni na for STR in abc ABC\ndef DEF a i pri IFS=\n se mezera bude stale povazovat za delitko a stale se mu to bude rozpadat na ctyri polozky misto na dve, jak pozaduje.
    17.6.2010 18:17 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: BASH for vs while
    A to je tak těžké si to vyzkoušet? Zastavuje se to na tom, na co to nastavíte kolego.

    To co cituješ je asi nevhodně zvoleno a vytrženo z kontextu.
    IFS    The Internal Field Separator that is used for word
    splitting after expansion and to split lines into words with
    the read builtin command.  The default value is
    ``<space><tab><newline>''.
    
    17.6.2010 18:25 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: BASH for vs while
    Pro snažší porozumění psaného textu si dovolím nápovědu: If the value of IFS is a <space>, <tab>, and <newline>,

    == Když IFS=" \t\n"

    or if it is unset,

    == nebo IFS=""

    any sequence of <space>s, <tab>s, or <newline>s at the beginning or end of the input shall be ignored and any sequence of those characters within the input shall delimit a field.

    A teď k tomu co má udělat tazatel:

    The shell treats each character of IFS as a delimiter, and splits the results of the other expansions into words on these characters. == IFS="\n"

    17.6.2010 18:30 Jirka P
    Rozbalit Rozbalit vše Re: BASH for vs while
    Pozor! IFS="" rozhodně neznamená "unset", nýbrž "null string", tedy žádná expanze.
    17.6.2010 13:09 Ant
    Rozbalit Rozbalit vše Re: BASH for vs while
    Jak docilit tehoz co u while pri pouziti for?
    To vubec tim FORem neres. Proste pouzij WHILE. Ten ti sam prestane cist, az dorazi na konec souboru.
    29.6.2010 14:18 nerakhon
    Rozbalit Rozbalit vše Re: BASH for vs while
    On tam je jeste dalsi rozdil, for a while se lisi tim, ze while vytvori novou instanci bashe. Takze napriklad : kdyby se mel obsah souboru nacitat do promenne uz by vznikl problem jak ji dal pouzit...
    29.6.2010 16:25 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: BASH for vs while
    Ale vždyť to tak není, to si asi pletete s pajpou.
    29.6.2010 16:46 marek
    Rozbalit Rozbalit vše Re: BASH for vs while
    Dobry den
    marek$ echo blabla |while read i; do  y=$i; echo $y; done; echo $y
    blabla
    
    marek$
    marek$ for i in $(echo blabla); do  y=$i; echo $y; done; echo $y
    blabla
    blabla
    marek$
    

    Obavam se ze ma pravdu.

    Jinak ten for je samozrejme nebezpecny v tom, ze snadno muzeme pretect max. delku radky.

    Marek
    29.6.2010 17:00 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: BASH for vs while
    Co to má být? Useless use of echo?

    Podívejte se ještě jednou na zadání, vidíte tam nějakou pajpu? Já tam žádnou nevidím. Není tam.

    Jak jsem řekl, plete si to s pajpou. Pokud je něco (while, for, read...) za pajpou, bash dělá nový process. Ale je to kvůli té pajpě, ne kvůli while nebo for.

    Řada případů s pajpou se dá také přepsat na případ bez pajpy, ale to jen doplňuji.
    30.6.2010 12:09 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: BASH for vs while
    To `cat subor` tiez vytvori novy proces, takze rychlostne si nepomozes. Prenos premennych do nadshellu je nieco ine.

    V bashi sa da nacitat subor cez $(<subor) bez noveho procesu.
    If you hold a Unix shell up to your ear, you can you hear the C.

    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.