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í
×
    včera 19:44 | Zajímavý článek

    Před 32 lety, 6. června 1993, byl spuštěn první český WWW server (ještě pod TLD .cs), pro potřeby fyziků zabývajících se problematikou vysokých energií.

    Ladislav Hagara | Komentářů: 4
    včera 16:11 | Zajímavý software

    Střílečku Borderlands 2 lze v rámci výprodeje série Borderlands na Steamu získat zdarma napořád, když aktivaci provedete do 8. června 19:00.

    Ladislav Hagara | Komentářů: 2
    včera 15:11 | Nová verze

    Byla vydána nová verze 2.22 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    5.6. 15:00 | Komunita

    Canonical Launchpad vypíná systém správy verzí Bazaar. Vývojáři mohou své repozitáře do 1. září přemigrovat na Git.

    Ladislav Hagara | Komentářů: 7
    5.6. 13:22 | Nová verze

    Byla vydána nová verze 2.53.21 svobodného multiplatformního balíku internetových aplikací SeaMonkey (Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 3
    5.6. 12:33 | Komunita Ladislav Hagara | Komentářů: 17
    5.6. 11:22 | Komunita

    Na Indiegogo byla spuštěna kampaň na podporu linuxového telefonu Liberux NEXX s osmijádrovým procesorem Rockchip RK3588S, 32 GB LPDDR4x RAM a 6.34″ 2400×1080 OLED displejem. Cena telefonu je 1 310 eur.

    Ladislav Hagara | Komentářů: 5
    5.6. 11:11 | Komunita

    Miro Hrončok vyhrál volby do Fedora Council. Mezi sedmi kandidáty, kteří se ucházeli o dvě křesla, nakonec získal nejvíce hlasů - 1089. Česká komunita má tak po delší době opět zástupce v nejvyšším orgánu Fedory.

    Ladislav Hagara | Komentářů: 0
    5.6. 04:33 | Zajímavý software

    Redox OS (Wikipedie), tj. mikrokernelový unixový operační systém naprogramovaný v programovacím jazyce Rust, nově podporuje X11 a GTK 3.

    Ladislav Hagara | Komentářů: 0
    5.6. 02:55 | IT novinky

    Dnes po celém světě startuje prodej herní konzole Nintendo Switch 2.

    Ladislav Hagara | Komentářů: 10
    Jaký je váš oblíbený skriptovací jazyk?
     (55%)
     (33%)
     (7%)
     (2%)
     (0%)
     (0%)
     (3%)
    Celkem 220 hlasů
     Komentářů: 14, poslední 2.6. 08:30
    Rozcestník

    Dotaz: Problém s kódem

    21.9.2012 11:42 noems
    Problém s kódem
    Přečteno: 377×
    Ahoj, nevidíte někdo chybu? :-( Už vážně netuším proč to nevypisuje to co má. Díky za případnou pomoc.
    #!/bin/bash
    
    for DIR in $(ls /home/virt/)
    do
         for FILE in $(ls /home/virt/$DIR/cnf/)
         do
              echo "/home/virt/$DIR/$FILE" 
         done
    done

    Odpovědi

    21.9.2012 12:00 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Problém s kódem
    A co to má dělat? Chyb je tam spousta, pár jsem jich eliminoval :-)
    #!/bin/bash
    OLDIFS=IFS
    IFS='
    '
    for DIR in $(ls -1 '/home/virt/')
    do
         for FILE in $(ls -1 "/home/virt/$DIR/cnf/")
         do
              echo "/home/virt/$DIR/$FILE"
         done
    done
    IFS=OLDIFS
    
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    21.9.2012 12:20 noems
    Rozbalit Rozbalit vše Re: Problém s kódem
    V adresáři /home/virt/ jsou adresáře, každý tento adresář obsahuje adresář s názvem cnf ve kterém jsou soubory, tyto soubory potřebuji vypsat včetně jejich celé cesty, budou se na ně vytvářet symlinky.
    Jinak netuším proč dáváš do ls 
    -1
    a k čemu je dobrý 
    OLDIFS=IFS
    IFS=''
    a
    IFS=OLDIFS
    
    Jinak je výsledek úplně stejný, nejede to.
    ls: cannot access /home/virt/......
    ......./cnf/: No such file or directory
    Všechny adresáře opravdu existuji...

    Jendа avatar 21.9.2012 13:13 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Problém s kódem
    Jinak netuším proč dáváš do ls 
    -1
    Aby to vypisovalo jen jeden soubor na řádek. GNU ls to dělá defaultně, když je na výstupu pípa, ale nespoléhal bych na to.
    a k čemu je dobrý 
    OLDIFS=IFS
    IFS=''
    a
    IFS=OLDIFS
    Protože v názvu souboru může být mezera a pak se to ti rozbije. Teda ono se to rozbije i teď, ale v míň případech. mkdir $'paplon\nvankus'
    21.9.2012 13:47 darkenik
    Rozbalit Rozbalit vše Re: Problém s kódem
    a ls -1 /home/virt/*/cnf/* nestaci ? pripadne find /home/virt/*/cnf/ -maxdepth 1 -type f
    21.9.2012 13:48 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Problém s kódem
    Pomocí IFS a -1 zajistím, že se zpracují korektně i mezery v názvech.
    A nedávám
    IFS=''
    ale
    IFS='
    '

    Což je notný rozdíl.

    Myslím, že problém bude jinde, práva nebo jiná struktura než uvádíš…
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    21.9.2012 12:39 NN
    Rozbalit Rozbalit vše Re: Problém s kódem
    Nebude stacit:
    find /home/virt/ -type f
    21.9.2012 13:04 noems
    Rozbalit Rozbalit vše Re: Problém s kódem
    Při použití find /home/virt/ -type f vypíše soubory i z podadresářů, tak že nee.
    Jendа avatar 21.9.2012 13:09 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Problém s kódem
    maxdepth
    21.9.2012 13:15 MadCatX
    Rozbalit Rozbalit vše Re: Problém s kódem
    Tohle se tvářilo funkčně:
    #!/bin/sh
    
    ROOTDIR="$1"
    
    for d in $(ls -1 "$ROOTDIR")
    do
            for f in $(ls -1 "$ROOTDIR/$d")
            do
                    echo "$ROOTDIR/$d/$f"
            done
    done
    
    Nejsou na tom adresáři nějak divně nastavená práva?
    21.9.2012 13:18 noems
    Rozbalit Rozbalit vše Re: Problém s kódem
    Tohle se tvářilo funkčně:
    a v $1 se očekává že bude co?
    Nejsou na tom adresáři nějak divně nastavená práva?
    Ne, práva jsou v pořádku
    21.9.2012 16:04 l4m4
    Rozbalit Rozbalit vše Re: Problém s kódem
    První chyba je používat `for něco in $(ls ...)' namísto find.
    21.9.2012 17:53 Sten
    Rozbalit Rozbalit vše Re: Problém s kódem
    Místo for doporučuji
    ls -1 /home/virt | while read DIR; do
        …
    done
    Funguje to lépe než šachování s IFS :-)

    Ale jinak je na tohle opravdu lepší find
    21.9.2012 20:00 Kit
    Rozbalit Rozbalit vše Re: Problém s kódem
    Bohužel si to neporadí s některými znaky v názvu souboru. Proto je lepší naučit se používat příkaz find, který je i rychlejší.

    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.