Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie).
V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 12.0 (Mastodon). Forgejo je fork Gitei.
Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 155 (pdf) a Hello World 27 (pdf).
Hyprland, tj. kompozitor pro Wayland zaměřený na dláždění okny a zároveň grafické efekty, byl vydán ve verzi 0.50.0. Podrobný přehled novinek na GitHubu.
Patrick Volkerding oznámil před dvaatřiceti lety vydání Slackware Linuxu 1.00. Slackware Linux byl tenkrát k dispozici na 3,5 palcových disketách. Základní systém byl na 13 disketách. Kdo chtěl grafiku, potřeboval dalších 11 disket. Slackware Linux 1.00 byl postaven na Linuxu .99pl11 Alpha, libc 4.4.1, g++ 2.4.5 a XFree86 1.3.
Ministerstvo pro místní rozvoj (MMR) jako první orgán státní správy v Česku spustilo takzvaný „bug bounty“ program pro odhalování bezpečnostních rizik a zranitelných míst ve svých informačních systémech. Za nalezení kritické zranitelnosti nabízí veřejnosti odměnu 1000 eur, v případě vysoké závažnosti je to 500 eur. Program se inspiruje přístupy běžnými v komerčním sektoru nebo ve veřejné sféře v zahraničí.
Vláda dne 16. července 2025 schválila návrh nového jednotného vizuálního stylu státní správy. Vytvořilo jej na základě veřejné soutěže studio Najbrt. Náklady na přípravu návrhu a metodiky činily tři miliony korun. Modernizovaný dvouocasý lev vychází z malého státního znaku. Vizuální styl doprovází originální písmo Czechia Sans.
Vyhledávač DuckDuckGo je podle webu DownDetector od 2:15 SELČ nedostupný. Opět fungovat začal na několik minut zhruba v 15:15. Další služby nesouvisející přímo s vyhledáváním, jako mapy a AI asistent jsou dostupné. Pro některé dotazy během výpadku stále funguje zobrazování například textu z Wikipedie.
Více než 600 aplikací postavených na PHP frameworku Laravel je zranitelných vůči vzdálenému spuštění libovolného kódu. Útočníci mohou zneužít veřejně uniklé konfigurační klíče APP_KEY (např. z GitHubu). Z více než 260 000 APP_KEY získaných z GitHubu bylo ověřeno, že přes 600 aplikací je zranitelných. Zhruba 63 % úniků pochází z .env souborů, které často obsahují i další citlivé údaje (např. přístupové údaje k databázím nebo cloudovým službám).
Open source modální textový editor Helix, inspirovaný editory Vim, Neovim či Kakoune, byl vydán ve verzi 25.07. Přehled novinek se záznamy terminálových sezení v asciinema v oznámení na webu. Detailně v CHANGELOGu na GitHubu.
Informace o názvu skriptu, počtu předaných argumentů a argumenty samotné jsou uloženy ve speciálních proměnných.
$0
- název skriptu$#
- počet předaných argumentů$IFS
- seznam znaků, který je použit k oddělování slov
atp., např. když shell čte vstup$1
až $9
- první až devátý argument
předaný skriptu${n}
- libovolný n-tý argument předaný skriptu$*
- obsahuje všechny argumenty oddělené prvním znakem
z $IFS
$@
- jako předchozí, ale k oddělení se nepoužívá první
znak z $IFS
Skript argumenty.sh
nám poslouží jako ukázka.
#!/bin/bash
|
Nyní skript spustíme s 10 argumenty.
$ ./argumenty.sh jedna dva tři čtyři pět šest sedm osm devět deset
|
Provádění funkcí je mnohem rychlejší než provádění skriptů, protože
funkce si shell udržuje trvale předzpracované v paměti. Funkce musí být
definována dříve než bude použita. Příkaz export
lze použít i
pro funkce, ale musí být zapnutý mód allexport
.
$ set -o allexport
|
Funkcím můžeme předávat argumenty stejně jako skriptům a získáváme
je stejným způsobem jako u skriptů. Příkaz return
ukončí
funkci a vrací její návratovou hodnotu ve formě celočíselného argumentu.
Po dokončení funkce jsou poziční argumenty skriptu
($#
, $@
...) obnoveny (u starších shellů to
tak být nemusí).
$ funkce_s_argumenty() {
|
Budeme-li chtít vrátit řetězcovou hodnotu, můžeme to udělat např. níže uvedeným způsobem.
#!/bin/bash vrat_retezec() { echo "Řetězec" } promena=$(vrat_retezec) echo $promena exit 0 |
Pomocí klíčového slova local
můžeme také vytvořit lokální
proměnné funkce. Jestliže bude existovat globální proměnná se stejným
názvem, bude ve funkci potlačena.
#!/bin/bash jedna="První globální proměnná" dva="Druhá globální proměnná" lokalni_promena() { local jedna="První lokální proměnná" echo $jedna echo $dva } lokalni_promena echo $jedna echo $dva exit 0 |
Příkazy můžeme rozdělit na zabudované a normální. Zabudované příkazy nemůžeme spustit jako externí programy, ale většinou mají své ekvivalenty ve formě externích programů. Normální příkazy jsou externí programy a jejich vykonání je pomalejší než u zabudovaných příkazů.
break
- vyskočí z cyklu:
- nulový příkazcontinue
- spustí další iteraci cyklu.
- provede příkaz v aktuálním shellueval
- vyhodnotí zadaný výrazshift
- posune poziční parametryread
- načte uživatelský vstup, jako argument se
použije název proměnné, do které se má uložitstty
- mění a vypisuje charakteristiky terminálové
linkyexec
- spustí nový shell nebo jiný zadaný program
a nebo upraví deskriptor souboruexit n
- ukončení skriptu s návratovým kódem n
(n = 0 - úspěšné ukončení, n = 1 až 125
- chyba, ostatní n jsou rezervovány)printf
- není dostupný ve starých shellech a při vytváření
formátovaného výstupu byste mu měli dávat přednost před příkazem
echo
podle specifikace X/OpenNa skriptu prikazy.sh
si ukážeme použití některých výše
uvedených příkazů.
#!/bin/bash for i in 10 20 30 40 50; do if [ $i -eq 40 ]; then break elif [ $i -eq 20 ]; then continue else : fi echo $i done a="abc" nazev_promene="a" promena='$'$nazev_promene echo $promena eval promena='$'$nazev_promene echo $promena while [ "$1" ]; do echo $1 shift done exec date echo "Tato část již nebude provedena!" exit 0 |
Nezapomeneme skript spustit s několika argumenty.
$ ./prikazy.sh první druhý třetí
|
Nyní si ukážeme interaktivní skript read.sh
,
který požádá uživatele o zadání přihlašovacího jména a hesla.
Heslo se nebude vypisovat na obrazovku.
#!/bin/bash echo -n "Přihlašovací jméno: " read jmeno echo -n "Heslo: " # Vypne výpis vstupních znaků stty -echo read heslo # Zapne výpis vstupních stty echo echo if [ "$jmeno" == "fuky" ] && [ "$heslo" == "heslo" ]; then echo "Kód: Příšerně žluťoučký kůň úpěl ďábelské ódy" else echo "Nemáte oprávnění k vypsání kódu" fi exit 0 |
Zadáme-li správné údaje, získáme kód.
$ ./read.sh
|
Na závěr tohoto dílu si ukážeme použití konstrukce
select proměnná in hodnota1 ... hodnotaN; do příkazy; done
.
#!/bin/bash echo "Zadejte vaše pohlaví" select pohlavi in muž žena; do if [ "$pohlavi" ]; then echo "Jste $pohlavi" break else echo "$REPLY je nedefinovaná odpověď" fi done exit 0 |
Po spuštění příkazu select
je uživatel vyzván, aby
zadal číslo jedné z hodnot (hodnota1 ... hodnotaN
v našem
případě muž
nebo žena
).
proměnná $REPLY
obsahuje vždy hodnotu uživatelského vstupu.
proměnná $pohlavi
obsahuje hodnotu pouze v případě, že číslo
odpovídá jedné z voleb. Dotaz se opakuje, dokud se neprovede
v těle příkaz break
.
$ ./select.sh
|
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: