Vláda USA nařídila společnosti Anthropic pozastavit přístup k modelům Fable 5 a Mythos 5 pro všechny cizince, včetně zaměstnanců Anthropicu.
Společnost Murena představila (YouTube) novou verzi 4.0 mobilního operačního systému /e/OS (Wikipedie) založeného na Androidu a LineageOS bez aplikací a služeb od Googlu.
V Arch User Repository (AUR) bylo kompromitováno přes 400 opomíjených balíčků (jejich seznam). Útočník do nich začlenil škodlivý npm balíček atomic-lockfile, který krade citlivá data uživatelů. Publikována byla předběžná analýza spouštěného malwaru deps.
Homebrew, správce balíčků nejen pro macOS, byl vydán ve verzi 6.0.0 (seznam změn). Hlavními novinkami jsou bezpečnostní mechanismus tap trust kvůli důvěryhodnosti závislostí, vylepšení sandboxingu na Linuxu, interní JSON API nebo zlepšení výkonu.
Byla nalezena a 9. června opravena kritická zranitelnost ve FreeBSD v Kernel TLS (KTLS). Pojmenována byla Bumsrakete (FreeBSD-SA-26:26.ktls, CVE-2026-45257). Lokální neprivilegovaný uživatel může přepisovat soubory, ke kterým má právo pouze pro čtení. Přepsáním setuid binárky a jejím spuštěním může získat roota. Na všech verzích od verze 13.0 vydané v dubnu 2021.
Vývojáři open source operačního systému ReactOS (Wikipedie), jehož cílem je kompletní binární kompatibilita s aplikacemi a ovladači pro Windows, se na síti 𝕏 pochlubili, že ReactOS zvládne počítačovou hru Half-Life.
Byla vydána nová verze 4.8 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Využíván je Free Pascal Compiler (FPC) 3.2.2.
Apple container dospěl do verze 1.0.0. Jedná se o open source nástroj pro spouštění linuxových kontejnerů na macOS postavený nad containerization. Napsaný je v programovacím jazyce Swift a optimalizovaný pro Apple silicon.
Bylo vydáno Eclipse IDE 2026-06 aneb Eclipse 4.40. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
Asterinas (GitHub) je v Rustu napsané jádro operačního systému poskytující s jádrem Linux kompatibilní ABI. Vydána byla verze 0.18.0. První distribucí postavenou nad jádrem Asterinas je Asterinas NixOS. Nejedná se o oficiální projekt NixOS a nemá nic společného s NixOS Foundation.
Řešení dotazu:
source "$(dirname $0)/foo/bar"nebo takto ?
source $(dirname $0)/foo/barDíky
source "$(dirname "$0")/foo/bar" ;)
OT: Takové source-ování nebude fungovat jak asi chceš při použití linek.
source $(dirname $0)/foo/bar
source "$(dirname "$0")/foo/bar"Ale zjištění adresáře nebude vždy, to co si asi zamýšlíš.
Mám pocit, že tě napínám, takže příklad:
Příprava:
mkdir kuk echo -e "#\!/bin/bash\n\necho \"\$(dirname \"\$0\")/foo/bar\"\n" > kuk/do.bash ln -s kuk/do.bash dolink ln -s kuk kuklink chmod +x kuk/do.bash
Test:
./kuk/do.bash ./dolink ./kuklink/do.bash
Otázka:
Chceš to tak?
Úklid:
rm ./dolink rm ./kuk/do.bash rm ./kuklink rmdir kuk
Můžeš ještě jednou co se snažíš říct - pro blba? Díky
Výstup z těch ukázek:
$ ./kuk/do.bash -> ./kuk/foo/bar - OK $ ./dolink -> ./foo/bar - ??? $ ./kuklink/do.bash -> ./kuklink/foo/bar - OK!
„¡Studenti! pokud nechápe výklad je chyba přednášejícího, ne vaše …rozumíte tomu?“…
Kromě případu, kdy chceš z proměnné s mezerami vytvořit pole, je vhodné mít uvozovky v podstatě všude. Možná se najde ještě pár dalších exotických situací, kde se uvozovky nehodí, ale moc jich nebude.
text='a b c d e'
tokens=(${text}) # Tohle je ten speciální případ.
other_tokens=("${tokens[@]}") # Kopírování pole má uvozovky.
Složené závorky jsou u proměnných, které nejsou pole, v podstatě dobrovolné, ale většinou je používám. Přijdou vhod třeba v případě, kdy člověk změní "${text} s mezerami" na "${text}bez_mezer", protože zatímco "$text s mezerami" funguje podle očekávání, "$textbez_mezer" se se značnou pravděpodobností rozexpanduje na velké kulové.
Následuje ještě jeden příklad s poli a s uvozovkami. Expanze ${words[@]} a ${words[*]} dělají mimo uvozovky totéž, ale v uvozovkách se chovají odlišně.
words=(' a b ' ' c d ')
for word in ${words[*]}; do echo "${word}" \| ${word}; done # 4 řádky
for word in ${words[@]}; do echo "${word}" \| ${word}; done # 4 řádky
for word in "${words[@]}"; do echo "${word}" \| ${word}; done # 2 řádky
for word in "${words[*]}"; do echo "${word}" \| ${word}; done # 1 řádek
Zajímavé je též pořadí expanze v shellu — na první pohled nemusí být zřejmé, že přidání uvozovek do následujícího příkladu vůbec nic nezmění.
quotes=('"' '"' '"');
for i in ${quotes[@]}; do echo $i; done
Možná se najde ještě pár dalších exotických situací, kde se uvozovky nehodíExotických situací jako když máš v proměnné několik voleb programu? Ano, používat uvozovky všude, kde není zapotřebí word splitting, neškodí. Škodlivý je ovšem názor, že chtěný word splitting je cosi exotického. Je to příznak velkolepého formálního programování v shellu (ve srovnání se skriptováním), při kterém se nevyužívají silné stránky shellu, zato se složitě matlají věci, které ve vhodnějším jazyce fungují mnohem lépe.
Na druhé straně není nic horšího než matlání skriptů, které selžou při první neočekávané mezeře. Viděl jsem takových dost na to, abych byl skalním příznivcem uvozovek. Když chci mít v jedné proměnné víc optionů, je spousta důvodů pro použití pole, ve kterém se například option obsahující mezeru nerozdělí na dva. Pokud parsuju strukturovaná data, u kterých vím naprosto jistě, co je oddělovač a co ne, je to samozřejmě zcela jiná situace. Nejhorší je expandovat obyčejnou proměnnou obsahující parametry příkazové řádky, které mohou obsahovat jména souborů, která mohou obsahovat téměř libovolné bílé místo.
Tiskni
Sdílej: