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 02:48 | Komunita

Greg Kroah-Hartman potvrdil, že Linux 4.9 je jádrem s prodlouženou upstream podporou (LTS, Long Term Support). Podpora je plánována do ledna 2019. Aktuální jádra s prodlouženou podporou jsou tedy 3.2, 3.4, 3.10, 3.12, 3.16, 3.18, 4.1, 4.4 a 4.9.

Ladislav Hagara | Komentářů: 0
dnes 00:11 | Zajímavý článek

Výrobce síťových prvků, společnost Netgear, spustila nový program, který slibuje vývojářům, expertům, ale i běžným uživatelům vyplacení finanční odměny za nalezení bezpečnostních chyby v jejich produktech. Za nalezení zranitelnosti v hardware, API nebo mobilní aplikaci nabízí odměnu od 150 do 15 tisíc dolarů (dle závažnosti).

Michal Makovec | Komentářů: 0
dnes 00:08 | Pozvánky

V sobotu 18. 2. se v Praze v prostorách VŠE uskuteční od 9:30 již 4. ročník největší české konference o open source redakčním systému WordPress (WP) - WordCamp Praha 2017.

… více »
smíťa | Komentářů: 0
včera 23:58 | Komunita

Kryptoměnová komunita zahájila nový rok spuštěním projektu Blockchain.cz, jehož cílem je kolektivně nalézt ideální překlad pro čím dál frekventovanější slovo „blockchain“. Přispět návrhem může kdokoli. Sběr bude trvat až do konce září 2017. Následně bude probíhat dvoutýdenní veřejné hlasování, které bude zakončeno výběrem toho nejlepšího návrhu.

xHire | Komentářů: 3
včera 15:55 | Bezpečnostní upozornění

Společnost Oracle vydala čtvrtletní bezpečnostní aktualizaci svých softwarových produktů (CPU, Critical Patch Update). Opraveno je celkově 270 bezpečnostních chyb. V Oracle Java SE je například opraveno 17 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 16 z nich. V Oracle MySQL je opraveno 27 bezpečnostních chyb. Vzdáleně zneužitelných bez autentizace je 5 z nich.

Ladislav Hagara | Komentářů: 0
včera 02:48 | Nová verze

Po půl roce od vydání verze 9.0 (zprávička) byla vydána verze 10.0 zvukového serveru PulseAudio. Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 26
včera 00:33 | Komunita Ladislav Hagara | Komentářů: 8
18.1. 17:30 | Zajímavý článek

Mozilla.cz informuje, že webový prohlížeč Firefox bude od verze 53 obsahovat integrovaný prohlížeč dat ve formátu JSON. Firefox kromě strukturovaného prohlížení nabídne také možnost filtrace a uložení na disk. Dle plánu by měl Firefox 53 vyjít 18. 4. 2017.

Ladislav Hagara | Komentářů: 1
18.1. 11:00 | Komunita

Členové a příznivci spolku OpenAlt se pravidelně schází v Praze a Brně. Fotky z pražských srazů za uplynulý rok si můžete prohlédnout na stránkách spolku. Příští sraz se koná už zítra 19. ledna – tentokrát je tématem ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. Také budete mít příležitost si prohlédnout pražský hackerspace Brmlab.

xkucf03 | Komentářů: 1
17.1. 21:55 | Komunita

Nadace pro svobodný software (FSF) oznámila aktualizaci seznamu prioritních oblastí (changelog), na které by se měli vývojáři a příznivci svobodného softwaru zaměřit. Jsou to například svobodný operační systém pro chytré telefony, hlasová a video komunikace nebo softwarový inteligentní osobní asistent.

Ladislav Hagara | Komentářů: 20
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (10%)
 (2%)
 (74%)
 (3%)
 (11%)
Celkem 332 hlasů
 Komentářů: 24, poslední 17.1. 10:14
    Rozcestník
    Reklama

    Dotaz: Bash: ako vynutit pathname expansion?

    16.11.2008 00:57 Semo | skóre: 44 | blog: Semo
    Bash: ako vynutit pathname expansion?
    Přečteno: 311×
    V bash skripte prechadzam obrovsku a zlozitu adresarovu strukturu a kontrolujem, ci obsahuje vsetko co ma. Kazdy nazov adresara ma nejaky numericky unikatny generovany prefix a dalej textovy nazov. Napr: "002456.c". Potrebujem overit, ze v nejakom adresari sa nachadza aspon jeden adresar *.c. Ako to urobit bez spustenia externeho procesu? Potreboval by som si vynutit pathname expanziu retazca.

    Majme napriklad stav:
    $ ls
    111111.a
    222222.b
    333333.b
    
    a skript:
    dir=*.c
    if [[ -z $dir ]]; then
        echo "c neexistuje"
    fi
    
    No, lenze do premennej dir sa skutocne ulozi retazec "*.c" a vnutri [[ ]] sa uz pathname expanzia nerobi. Test na neprazdnost tejto premennej vzdy zlyha, takze takto napisany skript si nevsimne neexistenciu c-cka. Nepomaha ani zapnute shopt -s nullglob

    Jedine riesenie co som nasiel je expadndovat cez eval:
    dir="`eval echo *.c`"
    lenze spustenie niekolko desiatoktisic procesov zozerie hrozneho casu a tomu by som sa chcel vyhnut. Riesenie by si malo poradit aj s tym, ze nazov adresara moze obsahovat medzeru, prip. ze adresarov *.c moze byt viac ako jeden.

    (Napadlo ma spustit forcyklus (kde bash expanduje nazvy suborov) typu 'for i in *.c; do', vo vnutri si nastavit flag, ze cyklus aspon raz prebehol=adrear c existuje, a skoncit natvrdo cyklus. Ale radsej by som nejake elegantnejsie riesenie.)
    If you hold a Unix shell up to your ear, you can you hear the C.

    Odpovědi

    Luboš Doležel (Doli) avatar 16.11.2008 01:17 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Bash: ako vynutit pathname expansion?
    dir=*.c mi funguje, pokud takový soubor existuje. Nevím k čemu pak -z, existenci lze ověřovat s -e.
    16.11.2008 02:21 Semo | skóre: 44 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash: ako vynutit pathname expansion?
    No, mne dir=*.c funguje, ale iba stylom, ze ak dam echo $dir, tak to vypise expandovane subory. Lenze pomocou echo "$dir" sa da overit, ze ta expanzia nastala az pri volani toho echo a nie v momente priradovania. A kedze v [[ ]] sa pathname expanzia nerobi, tak tam to zlyha.

    No, ale vymyslel som dve riesenia.

    1.)
    set -- *.c
    dir="$1"
    [[ -z "$dir" ]] &&
    ...
    2.)
    dir=( *.c )
    [[ -z "${dir[1]}" ]] &&
    ...
    
    Obe riesenia funguju aj pre viac suborov, aj ak obsahuju medzery. Je ale divne, ze pri priradovani premennych sa pathname exp. nerobi, ale pri priradovani poli uz hej.
    If you hold a Unix shell up to your ear, you can you hear the C.
    16.11.2008 02:31 Semo | skóre: 44 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash: ako vynutit pathname expansion?
    Oprava: 2.)
    ...
    [[ -z "${dir[0]}" ]] &&
    ...
    If you hold a Unix shell up to your ear, you can you hear the C.
    Luboš Doležel (Doli) avatar 16.11.2008 13:02 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Bash: ako vynutit pathname expansion?
    Fakt nechápu, proč se snažíte ověřit existenci souborů přes -z.
    18.11.2008 04:05 luky
    Rozbalit Rozbalit vše Re: Bash: ako vynutit pathname expansion?
    Protoze overuje vysledek te expanze.
    16.11.2008 13:43 mikky | skóre: 25 | blog: Ghlog | M. L. - Praha
    Rozbalit Rozbalit vše Re: Bash: ako vynutit pathname expansion?
    ls *.c > /dev/null 2>&1 && echo "existuje"

    ale pouze v případě, že si si jistý, že se tam neobjeví něco jiného, než adresáře...

    btw, to testování pomocí "-z" je fakt nesmysl

    -m.
    Je vám méně než 30 ? (jsme vrstevnící => budeme si tykat) : (jsem pro vás bažant => můžete mi tykat);
    16.11.2008 16:29 Semo | skóre: 44 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash: ako vynutit pathname expansion?
    1.) ls je samostatny program = spustanie noveho procesu, tomu sa chcem vyhnut

    2.) hladany shellpattern (*.c) tam moze byt 0 az viackrat. To znamena, ze testy pomocou -a/-f/-d atd. nebudu obecne fungovat

    3.) nechcem iba otestovat existenciu, ale aj zistit presny (expandovany) nazov

    4.) Mas lepsie riesnie? Ak ano sem s nim. Ja na svojom nijak netrvam, ale zatial tu lepsie nepadlo. Navyse obecny problem: ako vynutit pathname expansion je stary a (podla mna) doteraz malo riesitelny problem. Staci si tu prehladat diskusie na "bash expansion", "bash expanze" a pod. a vybehne 25 diskusii, bez jasneho zaveru ako to riesit inac ako externym procesom. Sposob expandovat to cez pole by (IMO) vyriesil 1/2 tych diskusii.
    If you hold a Unix shell up to your ear, you can you hear the C.
    16.11.2008 16:42 Semo | skóre: 44 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash: ako vynutit pathname expansion?
    btw, to testování pomocí "-z" je fakt nesmysl

    samozrejme to chce mat zapnute
    shopt -s nullglob
    If you hold a Unix shell up to your ear, you can you hear the C.
    16.11.2008 21:09 kuka
    Rozbalit Rozbalit vše Re: Bash: ako vynutit pathname expansion?
    Moc nechapu proc eval echo, nestaci pro tento ucel jen echo? U mne je jak eval, tak i echo shell builtin a se spoustenim zbytecnych procesu tak neni zadny problem. Samozrejme pokud to ma snad byt prenositelne, tak na to nejde zcela spolehat. Zkousel jsi to pustit? Opravdu se ti spoustely desetitice procesu?
    16.11.2008 21:44 Semo | skóre: 44 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash: ako vynutit pathname expansion?
    eval je builtin. Ale ako chces z neho ziskat tu hodnotu naspat? Pravdepodobne cez ``, prip $(), ktore spustaju novy proces (bash, v ktorom sa to eval vykona ako builtin).
    $ time for ((i=0; i<10000; i++)); do a="`eval echo *.c`"; done; echo "$a"
    
    real    0m7.878s
    user    0m2.253s
    sys     0m5.160s
    222.c
    
    $ time for ((i=0; i<10000; i++)); do a=( *.c ); done; echo "${a[0]}"
    
    real    0m0.495s
    user    0m0.350s
    sys     0m0.103s
    222.c
    
    16x rychlejsie. Podla sys zlozky v 1. pripade vidno, ze vacsinu stravil v rezime jadra, co v tomto priklade moze byt iba vytvaranie a rusenie procesov.
    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.