C2110 Operační systém UNIX a základy programování 7. lekce -1C2110 Operační systém UNIX a základy programování Petr Kulhánek kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta Masarykova univerzita, Kamenice 5, CZ-62500 Brno 7. lekce PS/2021 Prezenční forma výuky: Rev3 C2110 Operační systém UNIX a základy programování 7. lekce -2Shrnutí L6 ➢ Bash C2110 Operační systém UNIX a základy programování 7. lekce -3- Proměnné V jazyce Bash se proměnnou rozumí pojmenované umístění v paměti, které obsahuje hodnotu. Hodnota proměnné v jazyce Bash je vždy typu řetězec (text). Nastavení proměnné: $ JMENO_PROMENNE=hodnota $ JMENO_PROMENNE="hodnota s mezerami" Přístup k hodnotě proměnné: $ echo $JMENO_PROMENNE Zrušení proměnné: $ unset JMENO_PROMENNE Přehled všech definovaných proměnných: $ set nesmí být mezera mezi jménem proměnné a = "TEXT ${PROMENNA}TEXT" pokud má být hodnota součásti textu, tak se název proměnné uvádí do složených závorek C2110 Operační systém UNIX a základy programování 7. lekce -4Aritmetické operace Možné zápisy: (( I = I + 1 )) (( I++ )) Aritmetická operace se získáním výsledku: echo "Hodnota I zvetsena o jedna : $(( I + 1 ))" Další informace: man bash hodnotu výsledku se vypíše do místa zápisu • Aritmetické operace s celými čísly lze vykonat v bloku (( ... )). • Znaky se v bloku interpretují jako názvy proměnných. Proto není nutné používat operátor $ pro získávání jejich hodnoty. • Hodnoty proměnných se interpretují jako celá čísla. Pokud konverze selže, tak se použije nulová hodnota. C2110 Operační systém UNIX a základy programování 7. lekce -5- Vstup/výstup Vstup • Argumenty skriptu • Dostupné ve speciálních proměnných (0, 1, 2, …, 9, #) • Příkaz read slouží ke čtení textu ze standardního vstupu a jeho uložení do proměnných. Výstup • Příkaz echo slouží k neformátovanému výpisu do standardního výstupního proudu. • Příkaz printf slouží k vypisování formátovaných textů a čísel do standardního výstupního proudu. printf [format] [hodnota1] [hodnota2] ... echo [volby] [retezec1] [retezec2] ... read A # celý řádek se uloží do proměnné A read A B # první slovo se uloží do proměnné A # zbytek řádku do proměnné B C2110 Operační systém UNIX a základy programování 7. lekce -6Nová látka ➢ Bash C2110 Operační systém UNIX a základy programování 7. lekce -7Blok rozhodování ano ne ? ano ne blok 1 blok 2 stav ? ano ne blok 1 změna inicializace Podmíněné vykonání bloku (podmínky) Cyklické vykonávání bloku (cykly) Typické použití bloku rozhodování počítadlo (proměnná) C2110 Operační systém UNIX a základy programování 7. lekce -8- Obsah ➢ Blok rozhodování • podmínky, cykly ➢ Rozhodování ➢ Návratová hodnota procesu • příkaz exit ➢ Příkaz test • operátory porovnání, logické operátory • zjednodušený zápis ➢ Podmínky ➢ Cykly: while/until