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 16:11 | Nová verze

    Byl vydán Mozilla Firefox 147.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Firefox nově podporuje Freedesktop.org XDG Base Directory Specification. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 147 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    dnes 13:22 | Humor

    Asociace repair.org udělila anticeny těm nejhorším produktům představeným na veletrhu CES 2026. Oceněnými jsou například šmírující kamery Amazon Ring AI, chytrý běžecký pás od společnosti Merach, která otevřeně přiznává, že nedokáže zabezpečit osobní data uživatelů, případně jednorázové lízátko, které rozvibrovává čelisti uživatele a tak přehrává hudbu. Absolutním vítězem je lednička od Samsungu, která zobrazuje reklamy a kterou lze otevřít pouze hlasovým příkazem přes cloudovou službu.

    NUKE GAZA! 🎆 | Komentářů: 4
    dnes 12:00 | IT novinky

    Íránští protirežimní aktivisté si všímají 30% až 80% ztráty packetů při komunikaci se satelity služby Starlink. Mohlo by se jednat o vedlejší důsledek rušení GPS, kterou pozemní přijímače Starlinku používají k výpočtu polohy satelitů a kterou se režim rovněž snaží blokovat, podle bezpečnostního experta a iranisty Amira Rashidiho je ale pravděpodobnější příčinou terestrické rušení přímo satelitní komunikace Starlinku podobnou

    … více »
    NUKE GAZA! 🎆 | Komentářů: 3
    dnes 00:55 | IT novinky

    Evropská komise (EK) zvažuje, že zařadí komunikační službu WhatsApp americké společnosti Meta mezi velké internetové platformy, které podléhají přísnější regulaci podle unijního nařízení o digitálních službách (DSA). Firmy s více než 45 miliony uživatelů jsou podle DSA považovány za velmi velké on-line platformy (Very Large Online Platforms; VLOP) a podléhají přísnějším pravidlům EU pro internetový obsah. Pravidla po

    … více »
    Ladislav Hagara | Komentářů: 14
    dnes 00:44 | IT novinky

    Tržní hodnota technologické společnosti Alphabet poprvé v historii přesáhla čtyři biliony dolarů (83 bilionů Kč). Stalo se tak poté, co Apple oznámil, že bude na poli umělé inteligence (AI) spolupracovat s dceřinou firmou Alphabetu, společností Google.

    Ladislav Hagara | Komentářů: 3
    včera 11:11 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 161 (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 10:44 | Nová verze

    Po delší době vývoje vyšla nativní linuxová verze virtuálního bubeníka MT-PowerDrumKit 2 ve formátu VST3. Mezi testovanými hosty jsou Reaper, Ardour, Bitwig a Carla.

    balda | Komentářů: 1
    11.1. 21:33 | Nová verze

    Desktopové prostředí Budgie bylo vydáno ve verzi 10.10. Dokončena byla migrace z X11 na Wayland. Budgie 10 vstupuje do režimu údržby. Vývoj se přesouvá k Budgie 11. Dlouho se řešilo, v čem bude nové Budgie napsáno. Budgie 10 je postaveno nad GTK 3. Přemýšlelo se také nad přepsáním z GTK do EFL. Budgie 11 bude nakonec postaveno nad Qt 6.

    Ladislav Hagara | Komentářů: 0
    11.1. 13:00 | Humor

    OpenChaos.dev je 'samovolně se vyvíjející open source projekt' s nedefinovaným cílem. Každý týden mohou lidé hlasovat o návrzích (pull requestech), přičemž vítězný návrh se integruje do kódu projektu (repozitář na GitHubu). Hlasováním je možné změnit téměř vše, včetně tohoto pravidla. Hlasování končí vždy v neděli v 9:00 UTC.

    NUKE GAZA! 🎆 | Komentářů: 3
    11.1. 03:00 | Nová verze

    Byl vydán Debian 13.3, tj. třetí opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.13, tj. třináctá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (7%)
     (5%)
     (0%)
     (9%)
     (20%)
     (3%)
     (6%)
     (3%)
     (11%)
     (49%)
    Celkem 390 hlasů
     Komentářů: 11, poslední dnes 15:18
    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: 402×
    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.