Jak na webu co nejšíleněji zadávat datum? Jak to uživatelům co nejvíce znepříjemnit? V Bad UX World Cup 2025 (YouTube) se vybíraly ty nejšílenější UX návrhy. Vítězným návrhem se stal Perfect Date.
Společnost Collabora vydala (YouTube) na LibreOffice založený desktopový kancelářský balík Collabora Office. Pro Windows, macOS a Linux. Se stejným uživatelským rozhraním jako Collabora Online. Svůj desktopový kancelářský balík s rozhraním LibreOffice pojmenovala Collabora Office Classic.
Glen MacArthur vydal AV Linux (AVL) a MX Moksha (MXM) 25. S linuxovým jádrem Liquorix. AV Linux (Wikipedie) je linuxová distribuce optimalizována pro tvůrce audio a video obsahu. Nejnovější AV Linux vychází z MX Linuxu 25 a Debianu 13 Trixie. AV Linux přichází s desktopovým prostředím Enlightenment 0.27.1 a MX Moksha s prostředím Moksha 0.4.1 (fork Enlightenmentu).
Ubuntu pro testování nových verzí vydává měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 26.04 LTS (Resolute Raccoon).
Zástupci členských států EU se včera shodli na návrhu, který má bojovat proti šíření materiálů na internetu zobrazujících sexuální zneužívání dětí. Nařízení známé pod zkratkou CSAM a přezdívané chat control mělo množství kritiků a dlouho nebyla pro jeho schválení dostatečná podpora. Pro schválení byla potřeba kvalifikovaná většina a dánské předsednictví v Radě EU se snažilo dosáhnout kompromisu. Návrh nakonec po dlouhých týdnech
… více »Britské herní studio Facepunch stojící za počítačovými hrami Garry's Mod a Rust uvolnilo svůj herní engine s&box (Wikipedie) jako open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT. Herní engine s&box je postavený nad proprietárním herním enginem Source 2 od společnosti Valve.
Vývoj programovacího jazyka Zig byl přesunut z GitHubu na Codeberg. Sponzoring na Every.
Stejně jako GNOME i KDE Plasma končí s X11. KDE Plasma 6.8 poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.
Poslanci Evropského parlamentu dnes vyzvali k výraznému zvýšení ochrany nezletilých na internetu, včetně zákazu vstupu na sociální sítě pro osoby mladší 16 let. Legislativně nezávazná zpráva, kterou dnes odsouhlasil Evropský parlament poměrem 493 hlasů pro ku 92 proti, kromě zavedení věkové hranice 16 let pro využívání sociálních sítí, platforem pro sdílení videí či společníků s umělou inteligencí (AI) vyzývá také k zákazu … více »
Doom v KiCadu nebo na osciloskopu? Žádný problém: KiDoom: Running DOOM on PCB Traces a ScopeDoom: DOOM on an Oscilloscope via Sound Card.
# find /tmp -not -iregex '^/tmp.*' # PARAM="-not -iregex '^/tmp.*'" # find /tmp $PARAM /tmp /tmp/.ICE-unix /tmp/backup.cpio /tmp/mc-root /tmp/.font-unix /tmp/.font-unix/fs7100 # echo $PARAM -not -iregex '^/tmp.*'
<14:53:25> find /tmp -not -iregex '^/tmp.*' <14:53:52> PARAM='-not -iregex ^/tmp.*' <14:54:14> find /tmp $PARAM <14:54:23>
... a escapovat pro bash se mi teda moc nechce...Je uplne jedno ci sa Ti to chce alebo nie.
Kolega ma teoriu, ze kazdy problem z regexpami treba zacat riesit zdvojnasobovanim poctu spatnych lomitok. No ale mam tu aj skript, kde na prepasovanie jedneho spatneho lomitka cielovemu programu je potrebnych 10 spatnych lomitok v skripte.
Díky
-x, t.j. napisat skript z hlavickou
#! /bin/sh -x
$PARAM se pravděpodobně předá jako jeden parametr, shell už jej nerozdělí na tři. Pokud je akceptovatelné omezení na konkrétní shell, třeba bash, tak řešení je pole:
PARAM=(-not -iregex '^/tmp.*'); find /tmp ${PARAM[@]}
${PARAM[@]} expanduje právě na řadu oddělených položek z pole.
find /tmp "-not -iregex '^/tmp.*'"
tak find vrátí
find: invalid predicate `-not -iregex '^/tmp.*''
A tedy že pokud by to předalo v jednom parametru, tak by to psal také. Nevím, proč find tuto chybu nehlásil, nicméně s kulatými závorkami to funguje. Díky!
Co bych tedy měl napsat, abych nemusel používat pole? Celé to uvodit ještě do jedněch uvozovek?
String se expanduje jen při přiřazení, ne při použití. -- jak mám rozumnět tomuhle? Když dám přeci
echo $PARAMS
tak to vypíše ty parametry správně, tudíž se tedy expanduje, nebo ne?
Díky za zpřesnení
# a=a; b=b:$a; a=c; echo $b:$a b:a:cAle ono to pro expanzi cest neplatí, jak jsme si myslel, protože ta se koná až úplně na konci po expanzi proměnných ... takže když tam z nějaké proměnné vypadne hvězdička, tak ta se ještě potom expanduje, což jsem předtím myslel, že ne.
No stručně řečeno, mám v tom sám pěkný borčus, jak zjišťuju. Odvolávám, co jsme odvolal a řešení s polem je asi nejlepší. Jen jsem tam myslím nakonec zapomněl uvozovky, správně je to takhle:
# PARAMS=(-not -iregexp '*'); echo "${PARAMS[@]}"
-not -iregexp *
Bez uvozovek na konci by se hvězdička ještě expandovala. Uvozovky v PARAMS= zas zajistí, že se nebude expandovat při přiřazení. Jak jedny tak druhé uvozovky nakonec zmizí.
Řešení bez pole a bez nutnosti vše escapovat mě teď nenapadá. Protože pokud má být v proměnné víc oddělených parametrů, je nutné ji přesvěčit, aby se jako celek rozsekala (takže ji nejde dát při použití celou do uvozovek), ale zároveň aby se neexpandovaly kusy uvnitř a zároveň aby v ní nezustaly žádné přebytečné uvozovky. A to mě fakt nenapadá jak.
Totiž, ono ten tvůj původní kód má ještě jednu zradu:
# touch \'pokus\' # ls a.txt b.txt c.txt 'pokus' # PARAMS="-not -iregexp '*'"; echo $PARAMS -not -iregexp 'pokus'tedy dokonce ani korektně neescapuje. Teď už fakt nevím přesně proč, ale zdá se, že uvozovka vypadlá z expanze proměnné se chová jako literal uvozovka a ne jako escape. Takže IMO to bez pole nijak normálně nejde. Dokonce i důsledné escapování se chová divně:
# touch \\pokus # ls \pokus # PARAMS="-not -iregexp \*"; echo $PARAMS -not -iregexp \*Tady už fakt nechápu, proč tam zároveň zůstal backslash a zároveň nechytl ten soubor, co skutečně začíná backslashem ...
No, měl jsem pocit, že bash celkem chápu, ale zdá se, že moc ne ...
)
Tiskni
Sdílej: