Prezident USA Donald Trump během svého projevu na valném shromáždění OSN 22. září 2026 prohlásil, že umělá inteligence 'bude dále oficiálně nazývána superinteligencí', zkráceně SI. Svůj návrh zdůvodnil takto: 'Použití slova artificial činí inteligenci falešnou. Ona falešná není, ve skutečnosti je úžasná'. Zároveň ve svém proslovu prohlásil, že Spojené státy kategoricky odmítají jakékoliv pokusy o vytvoření 'globalistického
… více »Čínská technologická firma Xiaomi představila novou verzi 2.6 svého modelu MiMo, váhy modelů MiMo‑V2.6‑Pro‑RL a MiMo‑V2.6‑Flash‑RL jsou dostupné na HuggingFace pod licencí MIT. Výkonnější varianta Pro má přes bilion parametrů, z toho 42 miliard aktivních, úspornější Flash 309 miliard parametrů, z nichž se při generování aktivuje přibližně 15 miliard. Oba modely mají délku kontextového okna milion tokenů. Tyto MoE modely zvládají
… více »Proběhl Snapdragon Summit 2026. Společnost Qualcomm se mimo jiné pochlubila během Linuxu na čipech Snapdragon X2. Zatím pouze v ranní verzi vhodné pro vývojáře linuxových distribucí a přispěvatele do jádra Linux.
Byla vydána nová verze 2.0 klienta F-Droid určeného pro instalaci bezplatných a otevřených mobilních aplikací do Androidu ze softwarového repozitáře F-Droid (Wikipedie). Jedná se o alternativu k Google Play.
Debian Inference Portal nabízí vývojářům Debianu bezplatný přístup ke službám AI/LLM. Sponzorem je společnost Scaleway.
Robert Ressl nalezl ve WordPressu kritickou zranitelnost CVE-2026-87902 s CVSS 9.2. Útočníkům umožňuje neoprávněný přístup k souborům a vzdálené spuštění kódu (RCE). Opravena je ve verzích 7.1.2, 7.0.6, 6.9.9…
Společnost Meta na dvoudenní konferenci Meta Connect 2026 představuje své novinky. Vypíchnout lze lehké brýle s funkci VR Meta VR Glasses. Do prodeje půjdou na jaře 2027 za cenu 1299,99 dolarů.
Google Chrome 154 byl prohlášen za stabilní. Nejnovější stabilní verze 154.0.8037.57 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 108 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Vláda sníží v příštím roce výdaje na IT služby státu o 1,4 miliardy korun. Úspory má umožnit lepší koordinace nákupu služeb napříč resorty prostřednictvím nového zmocněnce. Celkové roční výdaje státu na informační technologie a digitalizaci se podle údajů ministerstva průmyslu a obchodu pohybují okolo 20 až 25 miliard korun ročně, pro letošek bylo na 320 projektů vyčleněno 21 miliard.
Irská komise pro ochranu dat (DPC) uložila americké technologické společnosti Google ze skupiny Alphabet pokutu 403 milionů eur (9,8 miliardy Kč) za neoprávněné nakládání s údaji o poloze uživatelů. Firma podle komise porušila evropské nařízení o ochraně osobních údajů (GDPR). DPC uvedla, že při šetření zjistila, že si lidé nemuseli být vědomi skutečnosti, že jejich poloha byla využívána například k ovlivňování prostřednictvím reklam nebo k odvozování jejich zájmů, a mohli tak ztratit kontrolu nad svými osobními údaji.
basename/dirname, test a read.Tyto dva příkazy slouží k získání konkrétní části cesty k souboru. Oběma příkazům se zadává kompletní cesta k souboru či adresáři. Příkaz basename slouží k výpisu samotného názvu souboru či adresáře, který získá ze zadané cesty, zatímco příkaz dirname vypíše název nadřazeného adresáře.
$ basename /tmp/soubor.txt soubor.txt $ dirname /tmp/soubor.txt /tmp
Toto se hodí v různých skriptech, které přímo pracují se soubory. V různých shellech lze tyto externí příkazy nahradit za (podstatně) rychlejší vestavěné funkce, například v Bashi lze použít toto:
$ cesta="/home/dave/file.ogg"
$ adresar="${cesta%/*}"
$ soubor="${cesta##*/}"
$ echo -e "cesta: $cesta\nadresar: $adresar\nsoubor: $soubor"
cesta: /home/dave/file.ogg
adresar: /home/dave
soubor: file.ogg
Ovšem zde je důležité podotknout, že chování těchto dvou metod není úplně stejné. Můžete si to zkusit například na tomto příkladu:
$ cesta="/tmp/xyz/"
$ basename "$cesta"
xyz
$ echo "${cesta##*/}
# nevypíše nic
Proč bashová metoda nevypíše nic? Protože ${cesta##*/} znamená odstranění části řetězce z proměnné $cesta od začátku až po poslední lomítko (včetně).
Příkaz basename má ještě jednu vlastnost. Zadáte-li jako druhý argument příponu, tak ji z názvu souboru odstraní. Tedy za předpokladu, že by to neznamenalo výpis prázdného řetězce a že byla daná přípona v názvu nalezena. Není-li daná přípona v názvu nalezena, není to považované za chybu.
$ basename "/tmp/velky_soubor.tar.xz" .xz velky_soubor.tar
Příkaz test slouží k vyhodnocování různých výrazů a tvrzení. Použijete-li příkaz správně, tak vždy pouze vrátí návratovou hodnotu 0, nebo 1 jako signalizaci, že tvrzení platí, nebo neplatí, a nic nevypíše.
test dovede pracovat se soubory a adresáři. Umí ověřit, zda je soubor či adresář zapisovatelný (přepínač -w), spustitelný (-x), zda lze číst (-r) či zda vůbec existuje (-e). Dále umí zjistit, zda je soubor obyčejný soubor (-f), blokové zařízení (-b), znakové zařízení (-c), symbolický odkaz (-h nebo -L), pojmenovaná roura FIFO (-p), socket (-S) či adresář (-d).
# ověřuje, zda cesta „/“ ukazuje na adresář; # vrátí 0 (pravda), protože kořenový adresář existuje vždy test -d / # ověřuje, zda existuje soubor /tmp/xyz test -e /tmp/xyz
Pomocí test lze také zkoumat řetězce znaků.
# pravda, pokud je řetězec $X nenulový test "$X" # pravda, pokud jsou řetězce $A a $B stejné test "$A" = "$B" # pravda, pokud jsou řetězce navzájem různé test "$B" != "$C" # pravda, pokud je řetězec nulové délky; # toto vrátí 0 test -z ""
Dále lze porovnávat celá čísla. Je možné použít operátory:
# pravda, 150 je menší nebo rovno 150 test 150 -le 150 # nepravda, 100 = 100 test 100 -ne 100
Výrazy lze kombinovat pomocí přepínačů -a (logický AND, tedy „a zároveň“) nebo -o (logický OR, „nebo“). Dále je lze negovat přidáním vykřičníku před výraz. Můžeme také ovlivňovat prioritu vyhodnocování výrazů pomocí závorek.
# vrátí 1, protože minimálně druhý výraz neplatí (s -a musí platit oba) test \( -w /tmp \) -a \( 100 -eq 101 \) # pokud je adresář /tmp zapisovatelný, vrátí 0, protože platí alespoň jeden výraz test \( -w /tmp \) -o \( 100 -eq 101 \) # pravda, pokud soubor není zapisovatelný test ! -w "soubor"
V praxi se test používá v shellových skriptech, nejčastěji v kombinaci s podmínkou if. Také se často místo test píše pouze hranatá závorka [, přičemž je to totéž, ale takto zapsaný příkaz je nutné ukončit opačnou hranatou závorkou ].
# toto: test -x skript.sh # je totéž jako toto: [ -x skript.sh ]
Předvedeme si ukázkové použití v Bashi. Píšeme funkci my_mkdir, které zadáte název adresáře a ona jej vytvoří, pokud neexistuje. Ovšem nejdříve ověří, zda již neexistuje soubor či adresář stejného názvu a zařídí se podle toho (vypíše patřičnou informaci). Pomineme, že taková funkce nemá valný význam, protože mkdir podobné kontroly dělá sám.
my_mkdir() {
# pokud soubor či adresář s tímto názvem již existuje
if [ -e "$1" ]; then
# pokud adresář s tímto názvem již existuje
if [ -d "$1" ]; then
echo "Adresář s tímto názvem již existuje."
return 0
else
echo "Již existuje soubor se stejným názvem." >&2
return 1
fi
else
# vytvoříme adresář, protože soubor ani adresář s daným názvem neexistuje
if mkdir -p "$1"; then
echo "Adresář byl úspěšně vytvořen."
return 0
else
echo "Adresář se nepodařilo vytvořit." >&2
return 1
fi
fi
}
read je šikovný nástroj, který slouží k načtení jednoho řádku ze standardního vstupu do dané proměnné (či více proměnných).
Když vyžadujeme od uživatele nějaký vstup za běhu programu, můžeme read použít následovně:
echo -n "Jak se jmenuješ? "
read NAME
echo "Právě jsi mi prozradil, že se jmenuješ ${NAME}."
read má jediný přepínač, a sice -r, který slouží k nastavení toho, jak se má nakládat s výskytem znaku „\“ (zpětné lomítko). Bez něj je považován za escapující znak, přičemž s ním je brán doslova jako znak „\“.
Často se ve skriptech používá ke zpracování textového souboru řádek po řádku, pomocí cyklu while. Následuje ukázka v Bashi, která očísluje řádky daného souboru.
x="$IFS" IFS="" n=0 while read -r line; do echo "$((++n)) $line" done < soubor.txt IFS="$x"
Je možné načítat i do více proměnných najednou:
$ read a b acko becko $ echo $b :: $a becko :: acko
Znak, podle kterého se daný řetězec rozdělí na několik částí, je dán proměnnou IFS, jak je naznačeno výše. Výchozí hodnota této proměnné jsou speciální znaky tab, mezera a nový řádek. Pokud je proměnná IFS nastavená na prázdnou hodnotu (pomocí IFS=""), k žádnému rozdělení nedojde.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
cat neco | while read line; ...
<neco while read line; ...
<(grep foo soubor.txt) což spojuje oboje výhody do jednoho. Ale to jen doplňuji, nic proti cat sem | tam.
sh, bash, zsh, csh, tcsh, máte nějaké podezření že to někde nefunguje?
bashi a v dashi (co jsem teď vyzkoušel).
Podle posixové gramatiky navíc
<neco while x
znamená spuštění příkazu "while" (existuje-li někde na disku) s parametrem x a vstupem přesměrovaným z neco.
-p.
read -p "Jak se jmenuješ? " NAME
read [-ers] [-u fd] [-t timeout] [-a aname] [-p prompt] [-n nchars] [-d delim] [name ...]
(bash)
lennycz@hugo:~$ IFS=x lennycz@hugo:~$ read a b aaaxbbbxcccxddd lennycz@hugo:~$ echo $a aaa lennycz@hugo:~$ echo $b bbb ccc ddd lennycz@hugo:~$Čekal bych jedno z tohoto:
$a bude aaa a $b bude bbb, zbytek se zahodí$a bude aaa a $b bude pole složené z bbb, ccc a ddd, pak by se ale výpis měl objevit jako bbbxcccxddd, protože $IFS je nastaveno na x
)
Jinak samozřejmě díky za skvělý seriál :D...
help jsem nevěděl.