Americký provozovatel streamovací platformy Netflix odmítl zvýšit nabídku na převzetí filmových studií a streamovací divize konglomerátu Warner Bros. Discovery (WBD). Netflix to ve čtvrtek oznámil v tiskové zprávě. Jeho krok po několikaměsíčním boji o převzetí otevírá dveře k akvizici WBD mediální skupině Paramount Skydance, a to zhruba za 111 miliard dolarů (2,28 bilionu Kč).
Americká společnosti Apple přesune část výroby svého malého stolního počítače Mac mini z Asie do Spojených států. Výroba v závodě v Houstonu by měla začít ještě v letošním roce, uvedla firma na svém webu. Apple také plánuje rozšířit svůj závod v Houstonu o nové školicí centrum pro pokročilou výrobu. V Houstonu by měly vzniknout tisíce nových pracovních míst.
Vědci Biotechnologické společnosti Cortical Labs vytvořili biopočítač nazvaný CL1, který využívá živé lidské mozkové buňky vypěstované z kmenových buněk na čipu. Po úspěchu se hrou PONG se ho nyní snaží naučit hrát DOOM. Neurony přijímají signály podle toho, co se ve hře děje, a jejich reakce jsou převáděny na akce jako pohyb nebo střelba. V tuto chvíli systém hraje velmi špatně, ale dokáže reagovat, trochu se učit a v reálném čase se hrou
… více »Pro testování byl vydán 4. snapshot Ubuntu 26.04 LTS (Resolute Raccoon).
Ben Sturmfels oznámil vydání MediaGoblinu 0.15.0. Přehled novinek v poznámkách k vydání. MediaGoblin (Wikipedie) je svobodná multimediální publikační platforma a decentralizovaná alternativa ke službám jako Flickr, YouTube, SoundCloud atd. Ukázka například na LibrePlanet.
TerminalPhone (png) je skript v Bashi pro push-to-talk hlasovou a textovou komunikaci přes Tor využívající .onion adresy.
Před dvěma lety zavedli operátoři ochranu proti podvrženým hovorům, kdy volající falšuje čísla anebo se vydává za někoho jiného. Nyní v roce 2026 blokují operátoři díky nasazeným technologiím v průměru 3 miliony pokusů o podvodný hovor měsíčně (tzn., že k propojení na zákazníka vůbec nedojde). Ochrana před tzv. spoofingem je pro zákazníky a zákaznice všech tří operátorů zdarma, ať už jde o mobilní čísla nebo pevné linky.
Společnost Meta (Facebook) předává React, React Native a související projekty jako JSX nadaci React Foundation patřící pod Linux Foundation. Zakládajícími členy React Foundation jsou Amazon, Callstack, Expo, Huawei, Meta, Microsoft, Software Mansion a Vercel.
Samsung na akci Galaxy Unpacked February 2026 (YouTube) představil své nové telefony Galaxy S26, S26+ a S26 Ultra a sluchátka Galaxy Buds4 a Buds4 Pro. Telefon Galaxy S26 Ultra má nový typ displeje (Privacy Display) chránící obsah na obrazovce před zvědavými pohledy (YouTube).
Byla vydána grafická knihovna Mesa 26.0.1 s podporou API OpenGL 4.6 a Vulkan 1.4. Je to první stabilní verze po 26.0.0, kde se novinky týkají mj. výkonu ray tracingu na GPU AMD a HoneyKrisp, implementace API Vulkan pro macOS.
Příkaz at slouží k naplánování pozdějšího spuštění příkazů. Anglický název příkazu v tomto kontextu překládáme jako předložku „v“ (ve významu v kolik hodin).
Implementace v Unix-like systémech obvykle sestává ze služby (démona) atd a uživatelského příkazu at. Služba běží neustále a spouští naplánované úlohy, když přijde čas. Tím se uživatel nemusí zabývat. Podstatné je pro nás, jak to naplánovat. Proto si popíšeme použití příkazu at.
Ve výchozím režimu čte at seznam příkazů, které má spustit, ze standardního vstupu (stdin) a jako argument očekává čas, kdy je má spustit. Chceme-li tedy spustit příkaz pokus přesně za hodinu, můžeme to naplánovat takto:
echo pokus | at now + 1 hour
Tím jsme si ukázali, že čas spuštění lze zadávat i relativně. Zadávání času spuštění je velice obecné a když si vymyslíte něco, co dává aspoň trochu smysl, at to pravděpodobně pochopí.
# spustí ,echo $USER >> /tmp/users‘ zítra v 18:00 echo 'echo $USER >> /tmp/users' | at 1800 tomorrow # spustí ,paludis -s‘ v 17:00 (pokud tento čas ještě nenastal, tak dnes, jinak zítra) echo 'paludis -s' | at 17:00 # spustí zadané příkazy 20. července v 17:00 at 5pm jul 20 <<! updatedb sync !
Přepínač -f umožňuje zadat cestu k souboru obsahujícímu seznam příkazů, jejichž spuštění má at naplánovat. Místo standardního vstupu se tedy čte z daného souboru.
# spustí příkazy ze souboru za týden v tento čas at -f soubor.at next week
Přepínač -m zajistí odeslání e-mailu danému uživateli po dokončení jeho příkazů. Pokud výstup příkazů nebyl přesměrován jinam, bude přiložen v e-mailu.
Nyní bych se měl zmínit o frontách a manipulaci s nimi. Všechna dosavadní ukázková volání příkazu at přidávají příkazy do výchozí fronty (zvané „a“). Chceme-li vypsat seznam položek ve frontě, použijeme přepínač -l (a chceme-li vypsat jinou frontu než výchozí, tak ještě -q).
# přidá daný příkaz do fronty „x“ echo lsmod | at -m -q x now + 1 minute # vypíše položky všech front at -l # vypíše položky fronty zvané „x“ at -l -q x
Další věc je odebírání položek z fronty. Když se spleteme a naplánujeme nesmysl nebo si časem rozmyslíme spouštění dané věci, tak se bude hodit přepínač -r. Problém je, že verze at, která je obvykle k nalezení na linuxových systémech, se zde trochu rozchází se standardem Single UNIX Specification a žádný přepínač -r nemá. Používáme proto příkaz atrm, kterému zadáme ID položek, jež chceme z fronty smazat. ID položek zjistíme výše zmiňovaným příkazem at -l (příp. nestandardně pomocí atq).
# smaže z fronty položky s ID 10, 12 a 15 atrm 10 12 15
Mimochodem, Windows NT/2000/XP/7 mají také příkaz at (podobný cronu), ten je ovšem zastaralý – nahradil jej schtasks (resp. GUI nadstavba Task Scheduler).
Program sleep nedělá nic (čeká) po uživatelem danou dobu. Název vychází z anglického slova, které v překladu znamená „spát“.
Nezasvěcenému uživateli se takový popis může zdát zvláštní a řekne si: „K čemu je příkaz, který nic nedělá?“ Představte si kupříkladu situaci, kdy je třeba spouštět nějaký příkaz každých 10 minut. Vyřešit to lze takto:
while true; do příkaz sleep 600 # čas v sekundách done
Chceme-li třeba za 15 sekund ukončit proces X serveru (to se někdy hodí při řešení problémů se vstupními zařízeními), můžeme také použít sleep:
# za 15 sekund pošle signál SIGKILL všem běžícím instancím X serveru sleep 15 ; killall -9 X
Tolik k praktickému využití. Ještě by se slušelo zmínit, že verze programu sleep, se kterou se setkáte, se může (a pravděpodobně bude) lišit od té standardní (dle SUS). Standard totiž říká, že program by měl pracovat s jedním celočíselným nezáporným argumentem, který udává, kolik sekund se má čekat. Jenže třeba sleep z GNU coreutils podporuje i zadávání minut, hodin a dnů (připojením písmene „m“, „h“ nebo „d“ za číslo). Další odlišností této verze je možnost zadat desetinné číslo.
# spí 1 den, 5 hodin, 2 minuty, 10 sekund, 200 milisekund sleep 1d 5h 2m 10.2s # spí 6 sekund a 300 milisekund sleep 0.1m 0.3s
Příkaz wait čeká, dokud se neukončí proces s daným PID běžící na pozadí daného shellu a poté se sám ukončí. Název programu je opět anglické slovo, která znamená „čekat“.
Jak jsem naznačil, wait umí čekat pouze na procesy spuštěné na pozadí shellu, ze kterého wait spouštíme. Předvedeme si spuštění programu na pozadí:
sleep 100 &
Představte si, že jsme místo programu sleep spustili na pozadí něco smysluplného. Teď když spustíme wait bez argumentů, tak bude čekat na ukončení všech procesů běžících na pozadí shellu. Když jako argumenty zadáme jednotlivé PID, bude se čekat pouze na jim odpovídající procesy. Pokud proces s daným PID neexistuje, wait by se měl chovat jako kdyby proces existoval a okamžitě vracel návratovou hodnotu 127. Návratová hodnota programu je obecně ta, kterou vrátí proces, jehož PID je uvedeno jako poslední v seznamu argumentů. Je-li spuštěn bez argumentů, vrací 0.
V Bashi se PID posledního procesu spuštěného na pozadí shellu uchovává v proměnné $!, takže lze provést následující:
lame --decode nejaka.mp3 nejaky.wav &> /dev/null & echo -n "Převádím MP3 na WAV… " wait $! && echo "OK" || echo 'chyba!'
V praxi se tento příkaz používá převážně neinteraktivně, tedy ve skriptech.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
while sleep x; do ...; done
while true. Kdyby tam byl nekonečný for, tedy for((;;)), tak by to bylo o něčem jiném.
for((;;)) občas nebyla sranda a musel jsem držet ctrl+c, zatímco u while true to stačilo jen zmáčknout.
Teď sem si i uvědomil že jsem reagoval docela zcestně na tvůj původní komentář, takže si mě radši nevšímej
lame --decode nejaka.mp3 nejaky.wav &> /dev/null & echo -n "Převádím MP3 na WAV… " wait $! && echo "OK" || echo 'chyba!'tohle je blbost $! vrati pid prikazu echo .... spravne melo byt
lame --decode nejaka.mp3 nejaky.wav &> /dev/null & PID=$! ... echo -n "Převádím MP3 na WAV… " wait $PID && echo "OK" || echo 'chyba!'
$! obsahuje ID procesu, který byl naposledy spuštěn na pozadí (tedy s &).
echo -n Převádím... lame ... >/dev/null && echo hotovo || echo chybaTedy alespoň pokud není třeba dělat mezitím něco dalšího.
wait $! && echo "OK" || echo 'chyba!' protože to je wait $! && (echo "OK" || echo 'chyba!') nikoliv "klasické" if then else wait $! && (echo "OK") || (echo 'chyba!')takže teoreticky pokud selže echo OK, objeví se "chyba!", ovšem nikoliv chyba v převodu mp3, ale chyba ve výpisu na obrazovku, což nemusí být to, co autor zamýšlel. V praxi echo OK většinou neselže, ale nepřipadá mi vhodné to takto psát...
Problém je, že verze at, která je obvykle k nalezení na linuxových systémech, se zde trochu rozchází se standardem Single UNIX Specification a žádný přepínač -r nemá.
Až tak obvyklé to nebude - v SuSE ho podporuje, v Red Hatu ho podporuje, ve Slackware IIRC taky (nebo aspoň podporovala, když jsem ho používal). Vlastně si nevzpomínám na žádnou konkrétní distribuci, kde by defaultní implementace at přepínač -r nepodporovala.