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 13:44 | Zajímavý software

    V pátek 6. a sobotu 7. března proběhl v pražském sídle Nejvyššího kontrolního úřadu (NKÚ) Hackathon veřejné správy 7.1. Publikovány byly vytvořené aplikace. V kategorii projektů rozvíjených z krajského kola zvítězil tým „Mackokládi“. Čtyři středoškoláci ze Dvora Králové uspěli s aplikací KompaZ. Jde o digitálního průvodce, který pomůže s rychlou a srozumitelnou orientací v životních i krizových situacích „krok za krokem“. Aplikace

    … více »
    Ladislav Hagara | Komentářů: 2
    dnes 13:33 | Nová verze

    QGIS, svobodný desktopový GIS, byl vydán v nové hlavní verzi 4.0. Změny zahrnují několik nových analytických a editačních funkcí, rozšíření podpory 3D, více možností úprav uživatelského rozhraní či mnoho dalších zlepšení použitelnosti. Řada 3.44 má aktualizace plánovány do září.

    |🇵🇸 | Komentářů: 0
    dnes 05:11 | Komunita

    Dan Blanchard vydal knihovnu pro Python chardet v nové verzi 7.0.0. S novou verzí byla knihovna přelicencována z LGPL na MIT. Souhlasili s tím všichni přispěvatelé? Dan Blanchard souhlasy vůbec neřešil. Zaúkoloval umělou inteligenci (Claude), aby knihovnu zcela přepsala a výslovně jí nařídil, aby nepoužila žádný LGPL kód. Dan Blanchard tvrdí, že se jedná o clean room design. Protistrana argumentuje, že umělá inteligence byla trénována

    … více »
    Ladislav Hagara | Komentářů: 12
    včera 18:44 | Komunita

    Andy Nguyen si na svou herní konzoli PlayStation 5 (PS5) pomocí exploitu Byepervisor nainstaloval Linux (Ubuntu). V Linuxu si spustil Steam a PS5 tak proměnil v Steam Machine. Na PS5 může hrát hry, které jsou vydané pouze pro PC a jsou na Steamu [Tom's Hardware].

    Ladislav Hagara | Komentářů: 9
    včera 12:22 | Nová verze

    Správce sbírky fotografií digiKam byl vydán ve verzi 9.0.0. Jedná se o větší vydání provázené aktualizacemi knihoven. Mnoho dílčích změn se vedle oprav chyb týká uživatelského rozhraní, mj. editace metadat.

    |🇵🇸 | Komentářů: 1
    7.3. 13:55 | Nová verze

    Byla vydána verze 2026 distribuce programu pro počítačovou sazbu TeX s názvem TeX Live (Wikipedie). Přehled novinek v oficiální dokumentaci.

    Ladislav Hagara | Komentářů: 28
    6.3. 23:22 | Humor

    Jihokorejská Národní daňová služba (NTS) zabavila kryptoměnu Pre-retogeum (PRTG) v hodnotě 5,6 milionu dolarů. Pochlubila se v tiskové zprávě, do které vložila fotografii zabavených USB flash disků s kryptoměnovými peněženkami spolu se souvisejícími ručně napsanými mnemotechnickými obnovovacími frázemi. Krátce na to byla kryptoměna v hodnotě 4,8 milionu dolarů odcizena. O několik hodin ale vrácena, jelikož PRTG je extrémně nelikvidní, s denním objemem obchodování kolem 332 dolarů a zalistováním na jediné burze, MEXC [Bitcoin.com].

    Ladislav Hagara | Komentářů: 10
    6.3. 16:33 | Nová verze

    Komunita kolem Linuxu From Scratch (LFS) vydala nové verze knih s návody na instalaci vlastního linuxového systému ze zdrojových kódů Linux From Scratch 13.0 a Beyond Linux From Scratch 13.0. Pouze se systemd.

    Ladislav Hagara | Komentářů: 0
    6.3. 16:00 | Nová verze

    Byla vydána nová stabilní major verze 25.12 linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Jedná se o nástupce předchozí major verze 24.10. Přehled novinek v poznámkách k vydání. Podporováno je více než 2200 zařízení.

    Ladislav Hagara | Komentářů: 0
    6.3. 04:44 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za únor (YouTube). Odstraněn byl veškerý kód napsaný ve Swiftu. JavaScriptový engine LibJS byl reimplementován v Rustu.

    Ladislav Hagara | Komentářů: 4
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (7%)
     (0%)
     (11%)
     (28%)
     (2%)
     (5%)
     (2%)
     (13%)
     (25%)
    Celkem 1036 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    Rozcestník

    Dotaz: Bash: ako vynutit pathname expansion?

    16.11.2008 00:57 Semo | skóre: 45 | blog: Semo
    Bash: ako vynutit pathname expansion?
    Přečteno: 405×
    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: 45 | 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: 45 | 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: 45 | 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: 45 | 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: 45 | 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.