Byla vydána nová verze 25.12.6 linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Opravena je řada zranitelností v základních síťových službách, které jsou ve výchozím nastavení aktivní a které lze zneužít na dálku. Důrazně je doporučena aktualizace.
Český projekt mapSTL.com promění vybrané místo na světě ve 3D mapu pro tisk, včetně měst, kopců a hor. Vytištěnou mapu můžete také pověsit na zeď jako obraz. STL i barevný 3MF stáhnete zdarma a bez registrace. Vyzkoušejte své oblíbené místo a podělte se o zpětnou vazbu.
Byl zveřejněn průběžně aktualizovaný program konference OpenAlt 2026 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Konference proběhne o víkendu 7. a 8. listopadu v prostorách FIT VUT v Brně. Vstup je zdarma.
Po 9 týdnech vývoje od vydání Linuxu 7.2 oznámil Linus Torvalds vydání Linuxu 7.3. Podrobný přehled novinek a vylepšení na Linux Kernel Newbies nebo LWN.net: první a druhá polovina začleňovacího okna.
Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 9.00. S podporou architektury AArch64 (ARM64).
Společnost Fairphone stojící za stejnojmennými mobilními telefony představila (pdf) bezdrátová špuntová sluchátka Fairbuds 2. Opravitelná, s vyměnitelnými bateriemi a tříletou zárukou. Cena 119 eur.
O víkendu 17. a 18. října lze na brněnském výstavišti navštívit s jednou vstupenkou dvě akce: Maker Faire Brno, festival inovací, kreativity a kutilství, a GameDev Connect, akci určenou pro všechny současné a hlavně budoucí herní vývojáře.
for s in bla ' bla' 'bla ' ' bla '; do
echo -n "'${s}': "
if [[ "${s:0:1}" != ' ' && "${s: -1}" != ' ' ]]; then
echo 'jo'
else
echo 'ne'
fi
done
...
if [[ "$s" = "${s# }" && "$s" = "${s% }" ]]; then
...
...
if [[ "${s}${s}" = "${s# }${s% }" ]]; then
...
if printf "%s" "$string" | grep -vo '^\s\|\s$'; then
Mám naprosto běžný grep (OK, GNU grep), který defaultně argument interpretuje jako basic regular expression, ne jako PCRE (to by dělal s přepínačem -P).
Nebo prostě jen nepoužívejte \s.
Já to nepoužívám, použil jste to vy - což byla chyba.
Expanze v nejsou prapodivné. Dokonce nejsou specifické pro Bash; byly i ve standardním shellu (a umí je tedy i Dash). Prapodivné je záměrně nepoužívat některé části Bashe (nebo shellu obecně). Od toho jsou přece manuálové stránky, aby expanze uživatelům přestaly připadat prapodivné.
Roury jsou přehledné pro zpracování delšího streamu dat, který jimi prochází a který se celý zpracuje na jedno spuštění zúčastněných procesů. Pro manipulaci s jednotlivými proměnnými jsou roury krajně nevhodné. Je to takový mor skriptů (anglicky antipattern) a jednou z výhod Bashe je, že umožňuje vyhnout se takovým zlozvykům.
Nic moc se nestane, když někdo zbytečnou rouru použije na zpracování jednoho vstupního parametru. Horší ale bude, když se něco takového dostane do cyklu, který čte vstup a stále dokola pak spouští grep. Viděl jsem až příliš mnoho skriptů, které běžely minutu, zatímco po odstranění zbytečného spouštění procesů jim stačila sekunda.
Pokud jde o nepřehlednou logiku, myslím si, že jednoduchá podmínka, která nápadně připomíná různé další jazyky, je nesrovnatelně přehlednější než ošklivý trik s grepem.
read aux <<<"$s" if [ "$s" = "$aux" ]; then
case "$s" in
\ *|*\ ) ... ;;
*) ... ;;
esac
read se hodí hlavně v situaci, kdy nepotřebuji kontrolu, ale spíš se těch počátečních a koncových mezer chci zbavit. Na druhou stranu, tenhle nenápadný rozdíl mezi "read" a "read var" mi vždycky přišel tak trochu jako past.
$newstring=$(printf "%s" "$string" | grep -Po '\S.*\S')Většinou to člověk ocení až při matchnutí něčeho složitějšího. Tím rozdílem mezi read a read var myslíte co?
V posixových shellech by to znamenalo spojení rourou s printf a to je pak lepší použít rovnou grep.
Ne, není. Kromě zpracování delších souborů nebo vstupů není nikdy "lepší" použít grep. Zatímco printf je efektivní vestavěný příkaz shellu, grep je zbytečný externí proces.
Asi jo, kdyby to bylo nějak nezbytné. Pokud ale můžu s proměnnou nějak přímo manipulovat v shellu (nebo v Bashi, který má integery a aritmetické výrazy, pár expanzí navíc a další vychytávky), asi bych tam tu rouru necpal za každou cenu. Jako jo, když mám kamna, tak tam budu mít rouru, ale jinak ji nepotřebuju.
Tiskni
Sdílej: