Byla vydána aktualizována Příručka pro začínající wikipedisty a wikipedistky (pdf).
Ubuntu plánuje v budoucích verzích nahradit tradiční nástroje pro synchronizaci času (chrony, linuxptp a gpsd) novým, v Rustu napsaným ntpd-rs, který nabídne vyšší bezpečnost a stabilitu.
Byla vydána nová verze 7.6 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Správce hesel KeePassXC byl nahrazen správcem hesel GNOME Secrets. Bitcoinová peněženka Electrum byla povýšena na verzi 4.7.0. Tor Browser byl povýšen na verzi 15.0.8. Další novinky v příslušném seznamu.
Chris Down v obsáhlém článku „vyvrací mýty o zswap a zram“, vysvětluje, co vlastně dělají a jaké jsou mezi nimi rozdíly. Doporučuje vyhýbat se zram na serveru a bez OOM.
Porota v Los Angeles shledala firmy Google a Meta odpovědnými v přelomovém soudním sporu, který se týká závislosti na sociálních sítích; firmy musí zaplatit odškodné tři miliony dolarů (63,4 milionu Kč). Společnosti, které s verdiktem nesouhlasí, čelily obvinění, že své sociální sítě a platformy záměrně navrhly tak, aby si na nich děti vypěstovaly závislost. Porota došla k závěru, že technologické společnosti při navrhování a
… více »Jelikož vývojáři editorů Vim a Neovim začali při vývoji využívat LLM, Drew DeVault se rozhodl forknout Vim a vytvořil projekt Vim Classic. Vychází z Vimu 8.2.0148, tj. těsně před zavedením Vim9 skriptování.
Byla vydána nová verze 0.56 open source počítačové hry Unvanquished (Wikipedie), forku počítačové hry Tremulous. Instalovat ji lze také z Flathubu.
FreeCAD (Wikipedie), tj. svobodný multiplatformní parametrický 3D CAD, byl vydán ve verzi 1.1 (YouTube). Po roce a čtyřech měsících od předchozí verze 1.0. Přehled novinek i s náhledy v poznámkách k vydání.
Společnost OpenAI oznámila [𝕏], že ukončí aplikaci Sora pro generování krátkých videí pomocí umělé inteligence. Podrobné informace a harmonogram pro aplikaci a API budou brzy zveřejněny.
Evropská směrnice NIS2 přináší nové požadavky v oblasti kybernetické bezpečnosti, které se promítají také do správy doménových jmen. Do českého právního řádu je směrnice implementována prostřednictvím nového zákona o kybernetické bezpečnosti. Jedním z praktických důsledků této legislativní změny je posílení požadavků na dostupnost a správnost kontaktních údajů držitelů domén. Správce registru domény .cz, sdružení CZ.NIC, je v
… více »while (1) {if(read() != CHYBA) break;}
read vyhodíš. Přestane to zlobit.
$ aplikace data1 data2
while true; do
read -rd $'\0' -s -p ... -n 1
case $REPLY in
$'\e') echo "Escape"; exit;;
$'\n') echo "Konec radky"; exit;;
*) echo -n "$REPLY";;
esac
done
String si postupně poskládáš z jednotlivých znaků (v default sekci casu), při enter nebo escape se rozhodneš dle potřeby.
Ctrl-C místo Esc jsi už zkusil?
Tady je řešení, které neukončí celý skript. Stačí jenom správně použít trap.
read -n1 s1 && [ $s1 != $'\e' ] && read s2 && s="$s1$s2" && { echo "Zadáno: $s"; }
To klidně jde, jenom je potřeba netrvat na ESC. Co takhle Ctrl+C? Tady je příklad, kde Ctrl+C funguje:
#!/bin/bash
do_something() {
read -p 'Enter task name: ' input
[[ "$input" = 'exit' ]] && return 1
echo "Task running: ${input}"
sleep 3
echo "Task done: ${input}"
}
while ((0 == $?)); do (
set -e
do_something 0<&0 &
PID=$!
trap "kill $PID" INT
status=0
wait $PID || status=$?
trap - INT
case $status in
1) echo 'Task encountered "exit" or end of input.'; exit 1 ;;
130) echo 'Task interrupted by Ctrl+C.' ;;
*) echo "Task finished with status ${status}." ;;
esac
) done
Tohle se zeptá na název nějakého úkolu, pak to předstírá, že něco dělá (3 sekundy spí — přesně tam se dá napsat, co to ve skutečnosti má dělat) a během celé rádoby-činnosti se to dá kdykoliv přerušit pomocí Ctrl+C, což se vrátí zase zpátky k promptu s názvem úkolu. Těch readů tam samozřejmě může být za sebou několik a kdykoliv se to pak bude dát přerušit s návratem na první prompt. Celé se to dá ukončit buď zadáním exit nebo ukončením vstupu pomocí Ctrl+D.
Technická: Subshell v cyklu je především proto, aby se nevypisovaly na terminál obsáhlé hlášky o stavu ukončenéno procesu — stav zpracovává a hlásí ten case, takže ho není potřeba vidět od shellu ještě jednou. Jinak by se dalo obejít bez něj.
INT (zvaný taky SIGINT) je ten signál, který skript dostane při stisku Ctrl+C.
Mimochodem, tohle řešení má několik zjevných race condition v tom smyslu, že ve vzácných případech může být nutné stisknout Ctrl+C dvakrát a v podobně vzácných případech se shell pokusí zabít proces, který už neběží (či jiný nešťastný proces, který mezitím dostal stejný PID). Oba problémy se dají odstranit pomocí zamykání (což obvykle obnáší vytvořit si dočasný adresář (mktemp -d) a v něm vytvářet zamykací podadresář — mkdir může posloužit v shellu k implementaci poor man's mutexu). To ale tenhle triviální příklad nedělá.
while true; do read -rd $'\0' -s -n 1 case $REPLY in $'\e') break;; $'\n') break;; esac done
$'\e') echo ESCAPE; break;;zjistil bys, že ty šipky ti ukončují na escape. O těchto znacích jsi nic neříkal a nyní se divíš, že to s nimi nefunguje. Samozřejmě, protože terminál za tyto znaky dostává tzv. escape sekvence, která, jak už vyplývá z názvu, začíná znakem escape. Detaily viz http://ascii-table.com/ansi-escape-sequences.php Zapomeň na ESC a použij to Ctrl+C, co ti tu všichni radí. Nebo se na to celé vybodni.
Tiskni
Sdílej: