C2110 Operační systém UNIX a základy programování 8. lekce / modul 3 -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 PS/2020 Distanční forma výuky: Rev1 8. lekce / modul 3 C2110 Operační systém UNIX a základy programování 8. lekce / modul 3 -2- Funkce C2110 Operační systém UNIX a základy programování 8. lekce / modul 3 -3Funkce - definice Funkce je konstrukce, která umožňuje seskupit část kódu tak, aby jej bylo možné snadno použít na více místech skriptu. Funkce tedy usnadňuje a zpřehledňuje zápis opakovaných úkonů. Definice: function jmeno () { prikaz1 prikaz2 ... } function jmeno { prikaz1 prikaz2 ... } jmeno () { prikaz1 prikaz2 ... } alternativní zápisy Argumenty funkce se nedeklarují, nedochází tedy k žádné kontrole v počtu argumentů, typové kontrole, funkce nelze přetěžovat. Zadané argumenty jsou dostupné přes speciální proměnné #, 1 až 9, *. Funkce se volají jako existující příkaz. Proměnné ve funkci jsou globální (lze změnit pomocí klíčového slova local). Dokumentace: man bash, sekce FUNCTIONS. C2110 Operační systém UNIX a základy programování 8. lekce / modul 3 -4Funkce – použití # print line – the length is in the first argument function print_line () { N=$1 for((J=1;J <= N;J++)); do echo –n " X" done echo "" } # use function print_line 10 # print line 10 characters long print_line 5 # print line 5 characters long hodnota argumentu je dostupná ve speciální proměnné 1 C2110 Operační systém UNIX a základy programování 8. lekce / modul 3 -5- Cvičení 1. Napište jeden skript, který vytiskne čtverec a trojúhelník (podobně jako v Úkolu 1 a 2) pro jednu zadanou délku za sebe do terminálu. Ve skriptu identifikujte část, která se opakuje a přepište ji za použití funkce. X X X X X X X X X X X X X X X X X X X X X X X X X X To, že se nejedná vzhledově o čtverec, ignorujte. Počet znaků X na řádku a počet řádků však musí být stejný.