Přednáškou „Bash script from scratch“ je tentokrát přispěl k linuxové konferenci InstallFest. Ta proběhla opět první víkend v březnu na ČVUT FEL na Karlově náměstí. I tentokrát to tedy bylo o shellu. Tématem mého povídání byla tvorba shell skriptu od počáteční řádky s #! až po komplexní skript. Díky záznamu Strahovského AVC se můžete na přednášku podívat. Vzhledem k tomu, že je přednáška samotná naprogramovaná v shellu, není možné si ji jednoduše prohlédnout na webu.
Přednáška se věnovala postupu, kterým je možné dojít od prvotní myšlenky na řešení nějakého problému, přes prototyp až ke konečnému skriptu v bashi (shellu). Konkrétní úkol, který jsem si zvolil, bylo vytvořit animaci (video) ze zadaných vstupních hodnot.
Představte si, že měříme nějakou veličinu, například teplotu nebo zátěž CPU, nebo cokoli jiného. Pokud máme v souboru data, řekněme každou hodnotu na samostatném řádku, mohli bychom vykreslit graf. Ten by zobrazoval, jak se hodnota měřené veličiny vyvíjela v čase. A tento vývoj bychom pak rádi viděli jako video.
To vše se dá v rámci prototypu napsat na několik jednoduchých řádků. Aby však bylo možné skript parametrizovat, aby mohl zpracovávat více vstupních souborů, aby byly ošetřené předvídatelné problémy a aby skript po sobě uklidil dočasná data již vyžaduje trochu více úsilí. A o tom je tato přednáška.
Jelikož jsem při prezentaci nepoužíval klasické slidy, ale ovládal interaktivní shell skript, není možné si jednoduše stáhnout celou prezentaci. Protože však obdobu této přednášky prezentuji studentům již několik let a vždy se najde někdo, kdo by rád výsledný skript měl k dispozici, mám jich několik verzí.
- Soubory z Installfestu 2020
- Soubory z předmětu „Programování v shellu 2“
-
anim-b132
- výsledný skript ze semestru B132anim-b142
- výsledný skript ze semestru B142anim-b142
- výsledný skript ze semestru B142 (kombinované studium)anim-b152
- výsledný skript ze semestru B152anim-b152
- výsledný skript ze semestru B152 (kombinované studium)anim-b172
- výsledný skript ze semestru B172anim-b172
- výsledný skript ze semestru B182
Obsah přednášky
- Intro
- How to solve problems using shell script
- Problem
- Overview
- Data generator (awk)
- Tools: gnuplot and ffmpeg
- Skeleton using comments
- Prototype 1 and 2
- Complex script
- Data processing
- Temporary files
- Tests
- Functions
- Traps (signals)
- Messages
- Options processing
- Arguments processing