Byla vydána nová verze 1.58 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Josephine Pfeiffer. Vypíchnout lze možnost nmtui zobrazit nastavení Wi-Fi jako QR kód nebo podporu CLAT (464XLAT) a tunelů GENEVE (Generic Network Virtualization Encapsulation).
Zákaz používání mobilních telefonů a dalších elektronických komunikačních zařízení ve školách, jehož uzákonění navrhli jako poslanci premiér Andrej Babiš (ANO) a ministr školství Robert Plaga (za ANO), dnes podle očekávání vláda podpořila. Novinářům to oznámil Babiš, podle Plagy byla podpora kabinetu jednomyslná. Účinnost předkladatelé navrhují od 1. září 2027. Podle opoziční ODS je plošný zákaz líbivé populistické opatření namířené proti digitální gramotnosti dětí.
Vládní CERT upozorňuje (𝕏) na zranitelnost ve WordPress Core: CVE-2026-63030 s přezdívkou wp2shell. Zranitelnost typu vzdálené spuštění kódu (RCE) bez nutnosti autentizace umožňuje útočníkovi spouštět libovolný kód prostřednictvím endpointu WordPress REST API Batch. Ke zneužití není vyžadován platný uživatelský účet ani interakce uživatele. Úspěšné zneužití může vést ke kompletnímu kompromitování webové stránky a souvisejících dat. Zranitelnost postihuje verze WordPress 6.9.0 až 6.9.4 a 7.0.0 až 7.0.1.
Evropská komise (EK) vyměřila čínskému internetovému prodejci AliExpress pokutu 550 milionů eur (13,3 miliardy korun) za porušení povinností vyplývajících z nařízení o digitálních službách (DSA). Platforma podle EK řádně neposuzovala a neomezovala rizika související s prodejem nelegálních, nebezpečných nebo padělaných výrobků na svém internetovém tržišti. Komise zároveň firmě nařídila přijmout nápravná opatření. Podle AliExpressu je pokuta nepřiměřená.
Ruffle, tj. open source emulátor Flash Playeru napsaný v Rustu, byl vydán ve verzi 0.4.0. Ke stažení je také na Flathubu. Přímo ve webovém prohlížeči lze vyzkoušet online dema nebo vlastní swf soubory.
HollowByte je zranitelnost typu Denial of Service (DoS) v kryptografické knihovně OpenSSL. Útočník může odesíláním škodlivého payloadu o velikosti pouhých 11 bajtů zaplnit paměť serveru. OpenSSL před ověřením dat vyhradí nepřiměřený blok paměti (až 131 KB). Server pak čeká na data, která nepřišla. Zranitelnost je opravena ve verzích OpenSSL 4.0.1, 3.6.3, 3.5.7, 3.4.6 a 3.0.21.
Ve španělské A Coruñě probíhá GUADEC 2026, tj. letošní konference vývojářů a uživatelů desktopového prostředí GNOME. Videozáznamy přednášek jsou k dispozici na YouTube.
Společnost Collabora ve spolupráci s Valve vyvíjí Holo Core, tj. port Arch Linuxu pro ARM64 procesory (AArch64), který bude pohánět VR headset Steam Frame. Pro testování Arch Linuxu pro AArch64 jsou k dispozici binární balíčky, zdrojové kódy i kontejner pro Docker nebo Podman.
Mikroprocesor Zilog Z80 byl oficiálně uveden na trh před 50 lety, tj. v červenci 1976. Výroba mikroprocesoru skončila v roce 2024.
Výzkumníci ze společnosti ESET objevili 11 zapomenutých UEFI shim zavaděčů, které byly podepsány společností Microsoft, a které umožňují útočníkům obejít ochranu UEFI Secure Boot na většině zařízení. Microsoft je zneplatnil (přidal jejich hash do databáze dbx) v rámci aktualizace Patch Tuesday dne 9. června 2026. Uživatelé Linuxu mohou databází aktualizovat pomocí LVFS. Ověřit zneplatnění zavaděčů lze pomocí skriptu uefi-dbx-audit. Jedná se o CVE-2026-8863 a CVE-2026-10797.
array=($(cat mujsoubor.txt)) <- ve skutecnosti je tam slozitejsi sed a awk, ktery z procesuje soubor a udela vystup viz nize
mujsoubor.txt radek;654645 jana;13221 andrea;55465 ...
ted bych potreboval jednotlive radky ulozit do promennych, zkousel jsem
while IFS=';' read jmeno cislo; do
echo $jmeno
echo $cislo
done < ${array[*]}
Ale bohuzel takto mi to nefunguje, poradite? Zkousim v bashi.
Diky
mujsoubor.txt radek;654645 jana;13221 andrea;55465Retezec 'mujsoubor.txt' se nachazi v souboru a je potreba jej vynechat? Soubor obsahuje jeden dlouhy retez nebo radky? Je treba spojit 'radek' a 654645, nebo 654645 a 'jana'? K cemu je pak retezec 'radek'? Nezname format vstupniho souboru, ani vystupniho, je mozne, ze cele reseni lze nafromatovat rovnou ze vstupniho souboru, bez zbytecnych cyklu. Konecne pokud se jedna o domaci ulohu, tak ta sem nepatri vubec.
mujsoubor.txt radek;654645 jana;13221 andrea;55465Muj cil je tento seznam projet a nacist si pokazde prvni promennou=radek a druhou=654654, atd, dokud jsou tam radky. Omlouvam se za zmateni
. mujsoubor.shTa tečka vpředu není překlep, ale příkaz.
cat mujsoubor.txt |
while IFS=';' read cislo jmeno; do
echo $jmeno
echo $cislo
done
ale stejně by to v AWK bylo rychlejší a pohodlnější:
cat mujsoubor.txt |
awk 'BEGIN {RS=";"} {print $2, $1}'
Ovšem cpát to do pole je nesmysl. Máš k tomu nějaký závažný důvod?
Tohle by měla být povinná četba, klidně místo Lojzy Jiráska. 
Ne, já budu napřed mudrovat, protože pipeline začínající na cat jednoho souboru je prostě špatný příklad, celkem bez ohledu na okolnosti. Povaluje se na webu v nesčetných obměnách a přijde mi zbytečné přidávat další. Jak si to tazatel upraví, aby mu to četlo pipe z jiného programu, to už je jeho věc.
Děkuji, ale dobře jsem rozuměl, co tím myslel. Výsledkem ovšem je, že se na webu povalují zase další dva špatné příklady použití cat (který má, pravda, představovat „něco jiného“). Ať tak nebo tak, ty příklady jsou prostě špatné. Když už ne kvůli procesu navíc, tak třeba kvůli subshellu. Pro ilustraci je nejlepší třeba tohle:
cat /etc/passwd | readarray -t pole_na_hovno readarray -t pole_s_daty < /etc/passwd
První pole bude prázdné (protože takhle pipe prostě funguje, forknutý shell nemůže ovlivnit proměnné v tom původním), zatímco to druhé bude definované v „hlavním“ shellu, jak by člověk čekal. Při čtení dat do pole je cat jednoho souboru a následný pipe v podstatě zdrojem chyb číslo jedna. Když nahradíme cat za něco jiného, nijak to nepomůže. Tentýž problém tam bude pořád. Snad jediný případ, kdy cat jednoho souboru dává smysl, je něco takového:
{ sed 's/\(^[^:]\+\):/another\1:/' /etc/passwd; cat /etc/passwd; } | další | zpracování
Tohle^^^ je samozřejmě ptákovina, ale umím si představit, že by to s drobnou obměnou mohlo dělat něco smysluplného. Možná je ale přehlednější tohle:
cat <(sed 's/\(^[^:]\+\):/another\1:/' /etc/passwd) /etc/passwd | další | zpracování
A to už není cat jednoho souboru, takže to je celkem OK. První možnost může být o něco efektivnější, protože výstup ze sedu nemusí přežvýkat cat. Pokud ovšem cat i shell používají v tomto případě splice(), je to nakonec jedno, co do efektivity.
První a nejsnazší možnost je tohle:
while read line; do
IFS=';' read jmeno cislo <<<"${line}"
echo "Jméno: ${jmeno}"
echo "Číslo: ${cislo}"
done < mujsoubor.txt
Pokud chceš experimentovat s polem a načíst si řádky napřed do pole, to je samozřejmě taky možné:
readarray -t lines < mujsoubor.txt
for line in "${lines[@]}"; do
IFS=';' read jmeno cislo <<<"${line}"
echo "Jméno: ${jmeno}"
echo "Číslo: ${cislo}"
done
Pro úplnost dodávám, že vstupní soubor vypadá takto…
radek;654645 jana;13221 andrea;55465
…a výstup z tohoto „parseru“ vypadá v obou případech takto:
Jméno: radek Číslo: 654645 Jméno: jana Číslo: 13221 Jméno: andrea Číslo: 55465
Všechny výše uvedené parametry jsou popsané v man bash; stačí si najít kapitolu zvanou Shell Builtin Commands, která je tam někde ke konci.
Jo a mimochodem, pole přináší jistý bonus navíc v podobě indexů, které můžeš použít třeba pro následující trik, chceš-li:
readarray -t lines < mujsoubor.txt
echo "Počet položek adresáře: ${#lines[@]}"
for index in "${!lines[@]}"; do
IFS=';' read jmeno cislo <<<"${lines[index]}"
echo "$((index + 1)). záznam: Jméno: ${jmeno} Číslo: ${cislo}"
done
Výstup z posledního skriptu bude pak následující:
Počet položek adresáře: 3 1. záznam: Jméno: radek Číslo: 654645 2. záznam: Jméno: jana Číslo: 13221 3. záznam: Jméno: andrea Číslo: 55465
Z výše uvedeného už snad nebude problém nějaký vhodný parsovací skript vymyslet. 
Aha! Příliš jsem se nechal unést iterací přes pole a parsováním řádků za každou cenu. On ale read sám od sebe umí všechno potřebné, takže ještě kratší (se stejným výstupem) bude tohle:
while IFS=';' read jmeno cislo; do
echo "Jméno: ${jmeno}"
echo "Číslo: ${cislo}"
done < mujsoubor.txt
Tiskni
Sdílej: