C2110 Operační systém UNIX a základy programování 7. týden -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. týden PS/2022 Prezenční forma výuky: Rev4 C2110 Operační systém UNIX a základy programování 7. týden -2- Opakování ➢ Bash C2110 Operační systém UNIX a základy programování 7. týden -3Interaktivní režim [kulhanek@wolf ~]$ jméno uživatele jméno počítače aktuální adresář (~ znamená domovský adresář /home/username) Prompt - typ uživatele / výzvy ($ běžný uživatel, # super uživatel, další možné %, >) místo pro příkaz Příkaz se vykoná zmáčknutím klávesy Enter. Historie: pomocí kurzorových šipek nahoru a dolů lze procházet seznamem již zadaných příkazů. Příkaz z historie lze znovu použít nebo upravit a upravený použít. Historie je přístupná i příkazem history. Automatické doplňování: zmáčknutím klávesy Tab (tabulátor) se interpret příkazové řádky snaží dokončit rozepsané slovo. Doplňují se jména příkazů, cesty a jména souborů (pokud jeden stisk nic nevyvolá, existuje více možností doplnění, opakovaný stisk je zobrazí). Shell interpretuje (expanduje) divoké znaky a jiné speciální znaky, před vlastním spuštění příkazu. V interaktivním režimu je možné spouštět řídící struktury jazyka bash. Interaktivní režim se ukončuje příkazem exit. C2110 Operační systém UNIX a základy programování 7. týden -4Skript v Bashi #!/bin/bash # toto je komentar echo 'Toto je skript v interpretu Bash!' echo "Obsah adresare `pwd` je:" ls # vypise obsah adresare A=6 # nastaveni hodnoty promenne A echo "Hodnota promenne A je $A" echo "jeden prikaz"; echo "druhy prikaz" ./mujprikaz prvni_argument druhy_argument \ treti_argument pořadívykonávánípříkazů • prázdné řádky se ignorují • text uvozený znakem # se ignoruje (používá se ke komentovaní funkčnosti skriptu) • na jeden řádek lze uvést více příkazů, příkazy se oddělují středníkem ; • jeden příkaz lze napsat na více řádků pomocí zpětného lomítka \ ihned následuje nový řádek C2110 Operační systém UNIX a základy programování 7. týden -5Neinteraktivní režim - skripty 1) Nepřímé spouštění Spouštíme interpreter jazyka a jako argument uvádíme jméno skriptu. $ bash muj_skript_v_bashi Skripty nemusí mít nastaven příznak x (executable). 2) Přímé spouštění Spouštíme přímo skript (shell automaticky spustí interpreter). $ chmod u+x muj_skript_v_bashi $./muj_skript_v_bashi Skripty musí mít nastaven příznak x (executable) a interpreter (součást skriptu). #!/bin/bash echo 'Toto je skript v interpretu Bash!' C2110 Operační systém UNIX a základy programování 7. týden -6- 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. týden -7Nová látka ➢ Bash C2110 Operační systém UNIX a základy programování 7. týden -8- Obsah ➢ Vstup a výstup • read, echo, printf • argumenty skriptu ➢ 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 C2110 Operační systém UNIX a základy programování 7. týden -9Blok 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á)