1 / 23

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

ŘÍDÍCÍ STRUKTURY - PODMÍNKY. Pokusíme se rozvětvit sktipt v Bashi. ŘÍDÍCÍ STRUKTURY - PODMÍNKY. V této lekci budeme probírat podmínkové příkazy, tj. příkazy, které nám pomohou rozvětvit skript a provádět určité příkazy pouze při splnění určité podmínky. Patří sem : if….then for….in while

Download Presentation

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ŘÍDÍCÍ STRUKTURY - PODMÍNKY Pokusíme se rozvětvit sktipt v Bashi SPŠ Teplice - 3.V

  2. ŘÍDÍCÍ STRUKTURY - PODMÍNKY V této lekci budeme probírat podmínkové příkazy, tj. příkazy, které nám pomohou rozvětvit skript a provádět určité příkazy pouze při splnění určité podmínky. • Patřísem: • if….then • for….in • while • until • case • select SPŠ Teplice - 3.V

  3. if….then syntaxe: if podmínka then příkazy fi Vývojový diagram SPŠ Teplice - 3.V

  4. Zadání příkladuNapište skript, který z příkazové řádky načte dvě slova a porovná, zda jsou či nejsou stejná Pozn.: V příkladu použijeme příkaz test, který testuje splnění či nesplnění podmínky a read, který načítá obsah proměnné z promptu. Pozn.: Uvozovky kolem $slovo1 jsou důležité pro případ, že by zadané slovo obsahovalo mezeru či zvláštní znak. Všimněte si, že se nedovíme nic v případě, že slova nesou stejná. Naštěstí má podmínka if…then variantu if….then….else SPŠ Teplice - 3.V

  5. if….then….else syntaxe: if podmínka then příkazy else příkazy fi Vývojový diagram SPŠ Teplice - 3.V

  6. Zadání příkladuRozšiřte předchozí skript o výstup pro případ, že se slova neshodují. Pozn.: Příkaz test lze nahradit hranatými závorkami. Závorky musí být odděleny od testované podmínky mezerou. SPŠ Teplice - 3.V

  7. Vnořená podmínkaif….then….elif syntaxe: if podmínka then příkazy elif podmínka then příkazy else příkazy fi Vývojový diagram SPŠ Teplice - 3.V

  8. Zadání příkladuNapište skript, který porovná shodu tří slov zadaných z příkazové řádky. Pozn.: Pro příkaz test či hranaté závorky budeme potřebovat logický operátor AND, syntaxi příkazu test si přečteme v man test. Zjistíme, že AND se zapisuje jako –a. Pozor, kolem logických operátorů musí být mezery, to platí i pro rovnost =. SPŠ Teplice - 3.V

  9. Domácí úkolNapište skript, který po zadání jména a hesla (2 x pro ověření správnosti) přidá uživatele do systému Řešení: SPŠ Teplice - 3.V

  10. for…injednoduchý cyklus syntaxe: for index-seznamu in seznam-argumentů do příkazy done Vývojový diagram SPŠ Teplice - 3.V

  11. Zadání příkladuNapište skript, který ze seznamu argumentů načte pět jmen a vypíše je v příkazové řádce. Pozn.: Příkaz sleep už známe z minulých lekcí. SPŠ Teplice - 3.V

  12. Varianty příkazu forPři této variantě budeme zadávat argumenty z příkazové řádky. Příklad spuštění skriptu s cyklem for s argumenty:./skript.sh arg1 arg2 arg3… syntaxe: for index-seznamu do příkazy done Obdoba předchozího příkladu: SPŠ Teplice - 3.V

  13. Domácí úkolNapište skript, který ze seznamu jmen vytvoří v systému odpovídající uživatele. Řešení: SPŠ Teplice - 3.V

  14. whiledalší cyklusDokud je splněna podmínka, tj. dokud test-příkaz vrací hodnou True, budou se vykonávat příkazy v sekci do syntaxe: while test-příkaz do příkazy done Vývojový diagram SPŠ Teplice - 3.V

  15. Zadání příkladuNapište skript, který pomocí cyklu while, vypíše čísla od 0 do 9. Pozn.: Pro vypracování příkladu budeme potřebovat možnost pracovat s aritmetickými operátory. V lekci, která bude následovat po ukončení lekcí o řídících strukturách si aritmetiku v Bashi probereme pořádně. teď se omezíme jen na následující: Aritmetický výraz má v Bashi dvě možnosti zápisu. $((výraz)) nebo $[výraz]. Celý takovýto zápis se vyčíslí a má stejný efekt, jako bychom napsali přímo výsledek výrazu. Zápis $((2+1)) je tedy ekvivalentní zápisu 3. Zápis ((cislo +=1)) zvýší hodnotu proměnné o 1. SPŠ Teplice - 3.V

  16. untildalší cyklusDokud není splněna podmínka, tj. dokud test-příkaz vrací hodnou False, budou se vykonávat příkazy v sekci do syntaxe: until test-příkaz do příkazy done Vývojový diagram SPŠ Teplice - 3.V

  17. Zadání příkladuNapište skript, pomocí kterého bude váš spolužák hádat křestní jméno někoho ze skupiny. Skript na závěr vypíše: „Uhodl jsi na x-tý pokus!“ SPŠ Teplice - 3.V

  18. A ještě jedna rada na závěrCyklus while lze s výhodou využít i při načítání obsahu textového souboru po řádcích. syntaxe: whileread proměnná do příkazy done < jmeno_souboru Následující skript načítá řádky souboru soubor.txt a vypisuje je do příkazového řádku. SPŠ Teplice - 3.V

  19. Domácí úkolNapište skript, který načte jména uživatelů ze souboru a vytvoří pro ně účty, jako heslo použijte jmeno007, např. uživatel karel bude mít heslo karel007. Řešení: SPŠ Teplice - 3.V

  20. caseřídící struktura case je rozhodovací struktura s více možnostmi syntaxe: case test-řetězec in možnost-1) příkazy-1 ;; možnost-2) příkazy-2 ;; možnost-3) příkazy-3 ;; … esac SPŠ Teplice - 3.V

  21. case Vývojový diagram SPŠ Teplice - 3.V

  22. Zadání příkladuNapište skript, který vyhodnotí zda jste zapsali A, B nebo C. SPŠ Teplice - 3.V

  23. selectřídící struktura umožňuje výběr obsahu proměnné ze zobrazené nabídky a poté vykonání příkazů s touto proměnnou syntaxe: select proměnná [in arg …] do příkazy done Příklad Následující příklad ukazuje, jak lze příkaz select využít. PS3 je systémová výzva, kterou používá struktura select pro vypsání zprávy uživateli. Vestavěný příkaz break lze použít i v jiných řídících strukturách. Ukončuje běh dané struktury. SPŠ Teplice - 3.V

More Related