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

Byla vydána verze 17.08.0 KDE Aplikací (KDE Applications). Přehled novinek v kompletním seznamu změn a na stránce s dalšími informacemi. Aplikace kmag, kmousetool, kgoldrunner, kigo, konquest, kreversi, ksnakeduel, kspaceduel, ksudoku, kubrick, lskat a umbrello byly portovány na KDE Frameworks 5.

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

Simon Long představil na blogu Raspberry Pi novou verzi 2017-08-16 linuxové distribuce Raspbian určené především pro jednodeskové miniaturní počítače Raspberry Pi. Společně s Raspbianem byl aktualizován také instalační nástroj NOOBS (New Out Of the Box Software). Nejnovější Raspbian je založen na Debianu 9 Stretch. Přehled novinek v poznámkách k vydání. Řešena je také bezpečnostní chyba Broadpwn (CVE-2017-9417).

Ladislav Hagara | Komentářů: 1
včera 12:33 | Nová verze

Byla vydána verze 3.2.0 programu pro skicování, malování a úpravu obrázků Krita. Přehled novinek v poznámkách k vydání a na YouTube.

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

Minulý týden na šampionátu The International 2017 byl představen bot, který poráží profesionální hráče počítačové hry Dota 2. V nejnovějším příspěvku na blogu se organizace OpenAI o projektu více rozepsala a zveřejnila videozáznamy několika soubojů.

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

Byly zveřejněny videozáznamy přednášek z Fedora 26 Release Party konané 10. srpna v Praze.

Ladislav Hagara | Komentářů: 0
16.8. 15:33 | Komunita

Přesně před čtyřiadvaceti lety, 16. srpna 1993, oznámil Ian Murdock vydání "Debian Linux Release".

Ladislav Hagara | Komentářů: 6
16.8. 06:00 | Bezpečnostní upozornění

Ve virtualizačním softwaru Xen bylo nalezeno a opraveno 5 bezpečnostních chyb XSA-226 až XSA-230. Nejzávažnější z nich XSA-227 (CVE-2017-12137) umožňuje eskalaci privilegií a ovládnutí celého systému, tj. správce hostovaného systému se může stát správcem hostitelského systému.

Ladislav Hagara | Komentářů: 1
15.8. 22:00 | Zajímavý projekt

V roce 2013 proběhla na Kickstarteru úspěšná kampaň na podporu otevřeného Dobře temperovaného klavíru (Well-Tempered Clavier). Stejný tým s Kimiko Išizaka spustil před týdnem na Kickstarteru kampaň Libre Art of the Fugue na podporu svobodného Umění fugy.

Ladislav Hagara | Komentářů: 2
15.8. 13:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených technologií a otevřeného přístupu na 143. brněnský sraz, který proběhne v pátek 18. srpna od 18:00 hodin ve sportovním areálu a restauraci BeachPub Sokolák u Brněnské přehrady aneb v hantecu u Prýglu.

Ladislav Hagara | Komentářů: 0
15.8. 10:55 | Nová verze

Byla vydána (pdf) verze 3 průběžně aktualizované (rolling release) linuxové distribuce Solus (Wikipedie). Ke stažení je v edicích Budgie, GNOME a MATE. Z novinek lze zmínit například podporu snapů. Solus 3 obsahuje Firefox 55.0.1, LibreOffice 5.4.0.3, Rhythmbox 3.4.1 nebo Thunderbird 52.2.1. Edice Budgie a GNOME přichází s GNOME MPV 0.12. Edice MATE s VLC 2.2.6.

Ladislav Hagara | Komentářů: 5
Těžíte nějakou kryptoměnu?
 (4%)
 (2%)
 (17%)
 (76%)
Celkem 351 hlasů
 Komentářů: 21, poslední 13.8. 09:57
    Rozcestník

    Dotaz: nefunkční test zda adresář obsahuje soubory ve formátu *.txt

    7.3.2011 19:27 sisel.cz
    nefunkční test zda adresář obsahuje soubory ve formátu *.txt
    Přečteno: 402×

    zdravím,

    #!/bin/bash
    CESTA=/home/download/fronta
    if [ -e $CESTA/*.txt ]; then
         akce_1
      else
         akce_2
    fi
    
    můj skript by měl testovat přítomnost souborů s příponou .txt v adresáři a jakmile je objeví, provést s nimi akci_1.

    Pokud je nenajde provést akci_2

    vše funguje jak bych si představoval dokud je v adresáři žádný, nebo jeden soubor.txt. V okamžiku kdy dám do složky více souborů *.txt, zkončí skript s chybou "příliš mnoho argumentů" Poradíte mi prosím, jak skript poupravit aby vykonával "akci_1" i při výskytu více souborů s příponou .txt?

    děkuji


    Řešení dotazu:


    Odpovědi

    7.3.2011 20:17 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: nefunkční test zda adresář obsahuje soubory ve formátu *.txt

    Zdravim,

    pokial potrebujes vykonat akciu aj v pripade, ze to nie je text. subor, tak mozes aj nasledovne:

    #! /bin/bash
    CESTA=/home/download/fronta
    
    for FILE in "${CESTA}"/*
    do
        if [[ "${FILE}" =~ \.txt$ ]]
        then
            akce_1
        else
            akce_2
        fi
    done
    

    Pokial ale nepotrebujes vykonat ziadnu akciu v pripade netextoveho suboru, tak potom takto:

    #! /bin/bash
    
    CESTA=/home/download/fronta
    
    for FILE in "${CESTA}"/*.txt
    do
        akce_1
    done
    

    V tvojom priklade to funguje ako ma. If cyklus je jednorazovy.

    A este jedna poznamka, uisti sa, ze premenna CESTA obsahuje spravnu cestu.

    7.3.2011 21:10 sisel.cz
    Rozbalit Rozbalit vše Re: nefunkční test zda adresář obsahuje soubory ve formátu *.txt

    děkuji za odpověd..

    Po vyzkoušení tvých skriptů, jsem si uvědomil, že jsem špatně formuloval dotaz :-(

    Potřebuji, aby skript nahlížel do adresáře a kontroloval, zda tam není jeden či více souborů.txt. Pokud je najde, podmínka je splněna a spustí se další skript (akce_1)

    pokud tam žádný txt soubor není (nehledně na to, jestli adresář obsahuje i jiné typy souborů), skript se ukončí (akce_2).

    7.3.2011 21:36 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: nefunkční test zda adresář obsahuje soubory ve formátu *.txt

    Takze pracujes vyhradne s textovymi subormi. Preto mozes pouzit for cyklus, teda druhy skript, co som ti dal. Ak totiz ziadny nenajde, tak nic nespravi a ak ziadny dalsi kod nenasleduje, tak nie je co vykonat a ukonci sa.

    p.s.: Ak si nasiel riesenie, oznac to kliknutim na Riesenie. Nie ze by som sa citil o moc lepsie, ale je to hlavne prehladnejsie.

    7.3.2011 23:37 Sten
    Rozbalit Rozbalit vše Re: nefunkční test zda adresář obsahuje soubory ve formátu *.txt
    Problém je v
    [ -e $CESTA/*.txt ]
    Pokud tam bude více souborů, shell je tam doplní a bude tam třeba
    [ -e /home/download/fronta/prvni.txt /home/download/fronta/druhy.txt ]
    což je příliš mnoho argumentů (jsou tam dva argumenty pro -e, ale smí tam být jen jeden).

    Řešením je třeba použít find pro nalezení právě jednoho souboru (pokud existuje):
    [ -n "$find $CESTA -name '*.txt' -print -quit)" ]
    Nebo pokud to nemá hledat v podadresářích:
    [ -n "$(find $CESTA -name '*.txt' -maxdepth 1 -print -quit)" ]
    8.3.2011 06:57 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: nefunkční test zda adresář obsahuje soubory ve formátu *.txt
    nebo
    if ls $CESTA/*.txt &>/dev/null; then
       akce_se_soubory
    else
       akce_bez_souboru
    fi
    
    In Ada the typical infinite loop would normally be terminated by detonation.
    8.3.2011 09:39 dustin | skóre: 61 | blog: dustin
    Rozbalit Rozbalit vše Re: nefunkční test zda adresář obsahuje soubory ve formátu *.txt
    Přesně tak. Mimochodem, co znamená to přesměrování ampersandu? To je zástupný znak pro všechny filedescriptory? Díky.
    8.3.2011 09:57 Skokan, Pavel | skóre: 29
    Rozbalit Rozbalit vše Re: nefunkční test zda adresář obsahuje soubory ve formátu *.txt
    http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html
    8.3.2011 15:56 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: nefunkční test zda adresář obsahuje soubory ve formátu *.txt
    AFAIK jen pro stdout a stderr.
    In Ada the typical infinite loop would normally be terminated by detonation.
    8.3.2011 21:05 sisel.cz
    Rozbalit Rozbalit vše Re: nefunkční test zda adresář obsahuje soubory ve formátu *.txt
    děkuji, přesně tohle jsem potřeboval.. Musím se ještě hodně učit, ale to já rád.

    &>/dev/null zahodí standartní i chybový výstup, že ?

    8.3.2011 21:22 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: nefunkční test zda adresář obsahuje soubory ve formátu *.txt
    Konstrukce &>file je zkratka bashe pro >file 2>&1, tj. přesměrovat standardní i chybový výstup společně do souboru file.

    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.