Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie).
V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 12.0 (Mastodon). Forgejo je fork Gitei.
Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 155 (pdf) a Hello World 27 (pdf).
Hyprland, tj. kompozitor pro Wayland zaměřený na dláždění okny a zároveň grafické efekty, byl vydán ve verzi 0.50.0. Podrobný přehled novinek na GitHubu.
Patrick Volkerding oznámil před dvaatřiceti lety vydání Slackware Linuxu 1.00. Slackware Linux byl tenkrát k dispozici na 3,5 palcových disketách. Základní systém byl na 13 disketách. Kdo chtěl grafiku, potřeboval dalších 11 disket. Slackware Linux 1.00 byl postaven na Linuxu .99pl11 Alpha, libc 4.4.1, g++ 2.4.5 a XFree86 1.3.
Ministerstvo pro místní rozvoj (MMR) jako první orgán státní správy v Česku spustilo takzvaný „bug bounty“ program pro odhalování bezpečnostních rizik a zranitelných míst ve svých informačních systémech. Za nalezení kritické zranitelnosti nabízí veřejnosti odměnu 1000 eur, v případě vysoké závažnosti je to 500 eur. Program se inspiruje přístupy běžnými v komerčním sektoru nebo ve veřejné sféře v zahraničí.
Vláda dne 16. července 2025 schválila návrh nového jednotného vizuálního stylu státní správy. Vytvořilo jej na základě veřejné soutěže studio Najbrt. Náklady na přípravu návrhu a metodiky činily tři miliony korun. Modernizovaný dvouocasý lev vychází z malého státního znaku. Vizuální styl doprovází originální písmo Czechia Sans.
Vyhledávač DuckDuckGo je podle webu DownDetector od 2:15 SELČ nedostupný. Opět fungovat začal na několik minut zhruba v 15:15. Další služby nesouvisející přímo s vyhledáváním, jako mapy a AI asistent jsou dostupné. Pro některé dotazy během výpadku stále funguje zobrazování například textu z Wikipedie.
Více než 600 aplikací postavených na PHP frameworku Laravel je zranitelných vůči vzdálenému spuštění libovolného kódu. Útočníci mohou zneužít veřejně uniklé konfigurační klíče APP_KEY (např. z GitHubu). Z více než 260 000 APP_KEY získaných z GitHubu bylo ověřeno, že přes 600 aplikací je zranitelných. Zhruba 63 % úniků pochází z .env souborů, které často obsahují i další citlivé údaje (např. přístupové údaje k databázím nebo cloudovým službám).
Open source modální textový editor Helix, inspirovaný editory Vim, Neovim či Kakoune, byl vydán ve verzi 25.07. Přehled novinek se záznamy terminálových sezení v asciinema v oznámení na webu. Detailně v CHANGELOGu na GitHubu.
$ program "aaa aaa" "bbb bbb"Parametry by však měly být výstupem jiného příkazu:
$ program `jiný_program`Řešení jsem se snažil hledat tady v archivu a na http://www.tldp.org/LDP/abs/html/quoting.html -- patrně přehlížím nějakou drobnost... Příklad:
$ list="\"aaa aaa\" \"bbb bbb\"" $ echo $list "aaa aaa" "bbb bbb" $ funkce () { echo 1: $1; echo 2: $2; echo 3: $3; echo 4: $4; } $ funkce "aaa aaa" "bbb bbb" # tohle funguje 1: aaa aaa 2: bbb bbb 3: 4: $ funkce `echo $list` # tohle nefunguje 1: "aaa 2: aaa" 3: "bbb 4: bbb"Zkoušel jsem to escapovat o ozávorkovávat horem dolem, ale nic nefungovalo. Mohl byste mě někdo postrčit správným směrem? Díky.
Jak se snažím použití eval
vyhýbat, našel jsem jen tohle:
eval funkce `echo $list`
eval
použít, ale cpal jsem to přímo k programu, jehož výstupem jsou ty parametry:
$ program `eval jiný_program`což samozřejmě nefungovalo. Až teď mi - díky tvé odpovědi - došlo, že je nutné to provést takhle:
$ list=`jiný_program`; eval program `echo $list`
IMHO by mělo stačit
eval program `jiný_program`
IFS=';' list='aaa aaa;bbb bbb' funkce () { echo 1: $1; echo 2: $2; echo 3: $3; echo 4: $4; } funkce `echo $list` 1: aaa aaa bbb bbb 2: 3: 4:
aaa aaa bbb bbb
), ale dva samostatné (aaa aaa
, bbb bbb
).
Každopádně eval
funguje
Každopádně tohle taky funguje Jen je potřeba vypustit zbytečné předávání výstupu echo.
$ IFS=";"
$ list="aaa aaa;bbb bbb"
$ funkce () { echo 1: $1; echo 2: $2; echo 3: $3; echo 4: $4; }
$ funkce $list
1: aaa aaa
2: bbb bbb
3:
4:
Asi jsi nepochopil co je IFS. Pokusím se Ti to tedy vysvětlit na příkladu
$ cat skript.sh #!/bin/bash echo $@ echo echo "1: $1" echo "2: $2" echo "3: $3" echo "4: $4" $ IFS=";" $ ./out.sh aaa bbb;ccc ddd $ ./skript.sh $(./out.sh) aaa bbb ccc ddd 1: aaa bbb 2: ccc ddd 3: 4:
Stále si stojíš za tím co jsi řekl?
echo $list
' byl pouze příkladem takového příkazu. Takže v okamžiku, kdy jste "vypustil zbytečné předávání výstupu echo", se vaše odpověď přestala týkat dotazu.
Jistě jsi si všiml, že v příkladu pro Tebe příkazu předávám parametry, které generuje jiný příkaz, takže co Tě trápí? BTW: A z dotazu je zřejmé, že výstup toho "jiného příkazu" lze modifikovat, tudíž není problém doplnit ";" či jiný oddělovač. Už je Ti to jasné?
Mně to bylo jasné od začátku. Vy si ovšem asi neuvědomujete, že když píšu svou reakci, reaguji na příspěvek, ke kterému tu reakci píšu. Ne na ty, které napíšete teprve jedenáct hodin poté… Takže když napíšete nesmyslný příspěvek, odpovím vám, že je to nesmyslný příspěvek, a nezabývám se možností, že to možná o půl dne později opravíte (což byste navíc nejspíš neudělal, kdybych vás na nesmyslnost původního příspěvku neupozornil).
Stále to nechápeš, to mě mrzí. Reagoval jsem na Robertův příspěvek, abych ho upozornil, že IFS také řeší jeho problém. Myslím, že všichni to pochopili, ale Ty jsi rozjel toto vlákno svým nesmyslným příspěvkem. Opravdu Ti to není jasné nebo jen nechceš uznat vlastní chybu? Zkus se zamyslet, sáhnout do svého svědomí a uznat, že jsi přestřelil.
Oba mé příklady jsou v principu to samé, i přesto je podle Tebe ten první nesmysl
Reagoval jsem na Robertův příspěvek, abych ho upozornil, že IFS také řeší jeho problém.
Jenže to, co jste napsal, ho nejen neřešilo, ale bylo to úplně od věci. Řešilo ho - možná* - teprve to, co jste napsal až dnes odpoledne. Proto jsem na to reagoval tak, jak jsem reagoval, a chybu byste měl uznat vy. Já nikdy netvrdil, že IFS
použít nelze (opět s níže uvedenou poznámkou); jen to, že co jste napsal v 00:43 je z pohledu řešeného problému naprosto od věci. A na tom trvám; že jste o jedenáct hodin později dospěl k jinému řešení, které už (jakž takž) funguje, na tom nic nezmění.
* - řešení to je pouze za předpokladu, že si může vybrat jeden konkrétní znak, který se určitě v použitých hodnotách nevyskytne; a to velmi často není pravda
S poznámkou pod čarou samozřejmě souhlasím, ale i ta má "řešení"
$ cat out.sh
echo '"aaa;bbb";"ccc;ddd"'
$ IFS=";"
$ eval ./skript.sh $(./out.sh)
aaa bbb ccc ddd
1: aaa bbb
2: ccc ddd
3:
4:
Jinak si samozřejmě stále stojím za tím co jsem napsal a na tom taky trvám
IFS
není poněkud samoúčelné…
No to si snad ze mě děláš srandu "řešení" , na to jsem právě narážel, že tak jako tak se v této situace neobejdu bez Tvého řešení a bylo by absurdní použít IFS...
BTW: Pochopil jsi alespoň Ty o co mi celou dobu jde? Děkuji za odpověď. Howg!
<cite> Spíš jste vy nepochopil, že nejde o to, jak předat příkazu parametry, které jsou uloženy v proměnné, ale jak příkazu předat parametry, které generuje jiný příkaz, a že 'echo $list' byl pouze příkladem takového příkazu. Takže v okamžiku, kdy jste "vypustil zbytečné předávání výstupu echo", se vaše odpověď přestala týkat dotazu. <cite>
No řekl bych, že okecat se to snažíš Ty, tak to zkusím ještě jednou a opravdu naposledy. Zásadní chyba je právě v tom, že echo $list
je špatným příkladem příkazu, který něco generuje. Mám pro to dva argumenty a) jak jsem psal níže, IFS=";"
se aplikuje dvakrát b) proč to kompikovat a nepředat rovnou výstup programu. $(./gen_list.sh)
dělá pro naše testovací účely úplně to samé jako $list
:
$ export list="aaa bbb;ccc ddd"
$ cat gen_list.sh
echo $list
$ IFS=";"
$ ./skript.sh $list
$ ./skript.sh $(./gen_list.sh)
Které z těchto řešení Ti přijde rychlejší na otestování? Mě přijde rychlejší použít rovnou $list
.
To je jako kdyby jsi tvrdil, že následující příklad je mimo mísu, přitom je to Tvé řešení, ale v bleděmodrém:
$ list='"aaa bbb" "ccc ddd"'
$ eval ./skript.sh $list
Závěr: již můj první příspěvek se týkal dotazu
Oba mé příklady jsou v principu to samé, i přesto je podle Tebe ten první nesmyslMichal nepsal, že je to nesmysl, nebo že by (za určitých okolností) nešlo použít řešení pomocí IFS. Napsal, že vzhledem k zadání je to "mimo". To proto, že jsi k předání těch parametrů nevyužil příkaz ale proměnnou (viz "je potřeba vypustit zbytečné předávání výstupu echo") -- neboli i když je, jak jsi o příspěvek dále ukázal, možné to pomocí IFS vyřešit i bez proměnné, tj. spuštěním příkazu, tak "vypuštění echo" bylo "mimo". A už se nehádejte :-). Díky za pomoc.
Michal napsal, že je to nesmysl
<cite> Takže když napíšete nesmyslný příspěvek, odpovím vám, že je to nesmyslný příspěvek, a nezabývám se možností, že to možná o půl dne později opravíte (což byste navíc nejspíš neudělal, kdybych vás na nesmyslnost původního příspěvku neupozornil). </cite>
No a právě o to, že vypuštění echo bylo, podle vás, mimo mi jde.
$ IFS=";"
$ ./skript.sh $list
$ ./skript.sh $(./out.sh)
V obou případech se IFS=";"
aplikoval jednou na řetězec "aaa bbb;ccc ddd"
, takže se snad můžeme shodnout, že oba příklady jsou vlastně synonyma.
$ IFS=";"
$ ./skript.sh $(echo $list)
A v tomto případě se IFS=";"
aplikovalo jednou na řetězec "aaa bbb;ccc ddd"
a podruhé na řetězec "aaa bbb ccc ddd"
.
Teď už si doufám všichni rozumíme?
Však my se nehádáme, my si jen vyměňujeme názory, naštěstí dost daleko od sebe, takže stíhám vychladnout
Teď už si doufám všichni rozumíme?Ne. Abych řekl pravdu, tak netuším, o čem v tom druhém příkladu mluvíš. Ale to nevadí... Už jsem vyzkoušel všechna zde prezentovaná řešení a už mi to celý den funguje k plné spokojenosti, takže to nechme být...
Tiskni
Sdílej: