Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

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

Podobné prezentace


Prezentace na téma: "ŘÍDÍCÍ STRUKTURY - PODMÍNKY Pokusíme se rozvětvit sktipt v Bashi SPŠ Teplice - 3.V."— Transkript prezentace:

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. SPŠ Teplice - 3.V Patří sem : • if….then • for….in • while • until • case • select

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

4 Zadání příkladu Napište skript, který z příkazové řádky načte dvě slova a porovná, zda jsou či nejsou stejná SPŠ Teplice - 3.V 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

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

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

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

8 Zadání příkladu Napište skript, který porovná shodu tří slov zadaných z příkazové řádky. SPŠ Teplice - 3.V 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 =.

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

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

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

12 Varianty příkazu for Př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… SPŠ Teplice - 3.V syntaxe: for index-seznamu do příkazy done Obdoba předchozího příkladu:

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

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

15 Zadání příkladu Napište skript, který pomocí cyklu while, vypíše čísla od 0 do 9. SPŠ Teplice - 3.V 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.

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

17 Zadání příkladu Napiš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ěr Cyklus while lze s výhodou využít i při načítání obsahu textového souboru po řádcích. SPŠ Teplice - 3.V syntaxe: while read 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.

19 SPŠ Teplice - 3.V Domácí úkol Napiš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í:

20 case řídící struktura case je rozhodovací struktura s více možnostmi SPŠ Teplice - 3.V 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

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

22 Zadání příkladu Napiš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 SPŠ Teplice - 3.V 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.


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

Podobné prezentace


Reklamy Google