Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".
Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Byla vydána verze 5.30 dnes již open source operačního systému RISC OS (Wikipedie).
V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …
Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.
Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.
Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.
Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.
Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.
Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.
Signály zaslané skriptu můžeme odchytávat pomocí příkazu
trap
.
trap příkaz signál
- jestliže jako příkaz
uvedeme znak "-
", nastaví se pro signál
původní
akce a když ''
, neprovede se nic (trap -l
vypíše signály, které lze odchytnout).Vyzkoušejte skript trap.sh
.
#!/bin/bash konec() { echo -n "Uklízím" i=0 while [ "$i" -le 10 ]; do i=$((i + 1)) echo -n "." sleep 0,1 done echo echo "Konec" } trap '' INT echo "Ctrl+C neudělá nic" sleep 3 trap - INT echo "Ctrl+C ukončí skript" sleep 3 trap 'konec; exit 0' INT echo "Ctrl+C spustí funkci konec a ukončí skript" sleep 3 konec echo "Skript proběhl až do konce" exit 0 |
Následující módy shellu nám mohou usnadnit ladění.
verbose
- před vykonáním příkaz vypíšextrace
- jako předchozí, ale napřed provede expanzi;
$PS4
na začátku řádku určuje
stupeň expanzenounset
- je-li použita nedefinovaná proměnná, ukončí
běh skriptu a vypíše chybovou hlášku
#!/bin/bash set -o verbose echo $PWD set -o xtrace echo $PWD echo $(pwd) set +o verbose set +o xtrace set +o nounset echo $nedefinovana_promena set -o nounset echo $nedefinovana_promena echo "Tento řádek se již nevypíše" exit 0 |
Nyní si skript ladeni.sh
spustíme a podíváme se na
jeho výpis.
$ ./ladeni.sh echo $PWD /root/fuky/clanky/bash set -o xtrace echo $PWD + echo /root/fuky/clanky/bash /root/fuky/clanky/bash echo $(pwd) pwd ++ pwd + echo /root/fuky/clanky/bash /root/fuky/clanky/bash set +o verbose + set +o verbose + set +o xtrace ./ladeni.sh: nedefinovana_promena: unbound variable |
Máme libovolnou adresářovou strukturu a v ní jsou uložené soubory *.wav, *.ogg a *.mp3.
ogg
Vytvoříme si skript oggwavmp3.sh
.
#!/bin/bash case "$1" in *.wav ) #cesta="${1%/*}/" cesta=$(echo $1 | sed 's/^\(.\+\/\)\([^/]\+wav\)$/\1/') if [ -d "${cesta}ogg" ]; then : else mkdir "${cesta}ogg" fi #soubor="${1%.*}.ogg" #soubor="${soubor##*/}" soubor=$(echo $1 | sed 's/^\(.\+\/\)\([^/]\+\)\.wav$/\2.ogg/') oggenc "$1" -Q -b 192 -o "${cesta}ogg/$soubor" ;; *.ogg ) #soubor="${1%.*}.wav" soubor=$(echo $1 | sed 's/\(.\+\)\.\(ogg\)$/\1.wav/') if [ "$soubor" ]; then sox "$1" "$soubor" rm "$1" fi ;; *.mp3 ) #soubor="${1%.*}.wav" soubor=$(echo $1 | sed 's/\(.\+\)\.\(mp3\)$/\1.wav/') if [ "$soubor" ]; then mpg123 "$1" -q -w "$soubor" rm "$1" fi ;; * ) ;; esac exit 0 |
Do souboru ~/.bashrc
si přidáme alias a po dalším
spuštění shellu můžeme začít využívat náš nový příkaz.
alias oggwavmp3='find -type f | xargs -i ~/bash/oggwavmp3.sh {}'
|
Na závěr si zkuste udělat hru Oběšenec. Nastavení hry se provádí pomocí konfiguračního souboru. Lze vybrat, zda se bude rozlišovat diakritika či velikost písmen. Slova či věty jsou uloženy v souborech podle složitosti a jedna z možností nastavení je právě výběr jen některých souborů se slovy (větami). A nakonec je zde i možnost časového omezení při zadávání znaku (příkazu) - v případě, že čas vyprší, bude hráč ihned oběšen. Samozřejmě, že vám dám k dispozici i mé řešení obesenec-1.1.tgz, ale podívejte se na něj až problém sami vyřešíte nebo budete-li opravdu v úzkých.
A to je z našeho seriálu opravdu vše . Máte poslední možnost zeptat se na věci, které se do našeho seriálu nevešly, nebo se na ně zapomnělo. Děkuji všem, kteří seriál průběžně komentují.
Nástroje: Tisk bez diskuse
Tiskni Sdílej:
basename
a dirname
. Jo a jen tak mimochodem, nejsou to regulerni, ale regulárni vyrazy.
sleep 0,1
nemelo by tam by sleep 1?
Takhle to chybuje:
Uklízím.sleep: invalid time interval `0,1' Více informací získáte příkazem `sleep --help'. .sleep: invalid time interval `0,1' Více informací získáte příkazem `sleep --help'. .sleep: invalid time interval `0,1'atd.
Díky za upozornění, nějak se mi tam vloudil překlep, místo čárky tam má být tečka sleep 0.1