Kód DUM : VY_32_INOVACE_LIN.1.02 Název materiálu: Anotace Autor Jazyk Očekávaný výstup 02- Zásady psaní a řetězení příkazů, jednoduchý skript DUM naučí žáky zásady práce s příkazy shellu BASH, zásady psaní skriptů Ing. Vladimír KEBERT, CSc (Autor) Čeština RVP 18-20-M/01 Informační technologie, předmět: Operační systémy, 3 ročník Speciální vzdělávací potřeby Žádné Klíčová slova Druh učebního materiálu Druh interaktivity Cílová skupina Stupeň a typ vzdělávání Typická věková skupina Př. Linux, skript, BASH, CSH, skript, příkaz, prompt, znak, Prezentace s prvky interaktivity Kombinované Žáci 3. ročníku Odborné vzdělávání 16-19 let Celková velikost Velikost materiálu v kb : 273 rozčlenění tématického celku: Linux-systémová část
1. Skript (Shellový, BASHový skript) - je strukturovaný řetězec příkazů s účelem vykonat určitou činnost - má charakter spustitelné aplikace - pomocí skriptu lze automatizovat hromadné nebo opakující se operace - skriptem lze konfigurovat systém, startovat aplikace, servery a služby - skriptem lze definovat a používat ochranu počítače 2. Struktura skriptu - skript se edituje jako textový soubor - skript má atribut spustitelný - příkazem $chmod a+x skript.sh - skriptům se zpravidla přidělí přípona *.sh - skript se uvozuje #!bin/bash - skript se spouští s uvedením $sh skript.sh Obraz č. 1 Příklad úvodu skriptu:
3. Zásady psaní - prostředí - v terminálu se doporučuje textový editor nano nebo mcedit - v grafickém prostředí gedit nebo kedit - je vhodné založit soubor příkazem $touch a postupovat pracovní logikou: Např: 1. založit si soubor $touch soucet_cisel.sh 2. vyřešit práva a spustitelnost $chmod a+x soucet_cisel.sh 3. editovat skript např. $nano soucet_cisel.sh 4. Psaní skriptu - skript se uvozuje #!bin/bash - poznámka se píše za # který způsobuje ignorování celého řádku interpretem - apostrofy ' ' chrání řetězec před interpretací - uvozovky též chrání obsah před interpretací ale umožní použít zástupné znaky Obraz č.2 Editor NANO je možným nástrojem ke tvorbě skriptů
5. Základní výrazy ve skriptech: break - vyskočí z cyklu a pokračuje dále za koncem cyklu Sleep čekej, přeruš chod skriptu v sekundách sleep 2 čeká 2 sekundy : - nulový příkaz continue - spustí další iteraci cyklu. - provede příkaz v aktuálním shellu eval - vyhodnotí zadaný výraz shift - posune poziční parametry read - načte uživatelský vstup, jako argument se použije název proměnné, do které se má uložit exit n - ukončení skriptu s návratovým kódem n (n = 0 - úspěšné ukončení, n = 1 až 125 - chyba, ostatní n jsou rezervovány) printf - není dostupný ve starých shellech a při vytváření formátovaného výstupu byste mu měli dávat přednost před příkazem echo podle specifikace X/Open
6. Jazyk, práce skriptu - BASH je jazyk interpretovaný. - shell vykonává řádek po řádku a volá příkazy - proto úprava skriptu má být přehledná a po řádcích - skript by měl komunikovat s uživatelem!!!! 7. Důležité operátory a fráze [1]:
8. Další operátory Střední odborná škola a Střední odborné učiliště, Hořovice 9. Přesměrování výstupu: Operátor Význam Operátor Význam + součet * součin - rozdíl ^ mocnina / podíl < = > porovnání Operátor Význam Příklad Výstup jednoho předá na vstup druhého programu > Výstup přesměruje do souboru, pokud není vytvoří jej, pokud je, přepíše jej >> Jako minulý ale výsledek připojí na konec Sd = `echo "scale=2;sqrt($b2)" bc -l` ls -la > hardware.txt ls -la >> modules.txt
11. První skript (sečte tři čísla a vypočte průměr) #!bin/bash #tento skript sečte tři čísla echo "Tento skript vypočte součet tří celých čísel" echo "zadejte první číslo" read a echo "zadejte druhé číslo" read b echo "zadejte třetí číslo" read c echo "zadali jste čísla" $a ";" $b ";" $c soucet=$(($a+$b+$c)) echo "Váš součet činí:..." $soucet exit 10. Využití jiného programu > bc -l (Matematický koprocesor): - BASH nedokáže některé výpočty (desetinná čísla, odmocniny atd.) - Žádost o výpočet lez předat úprogramu bc -l - Komunikace s bc probíhá interaktivně. Podporu desetinných čísel zapnete pomocí přepínače -l.
12. Spuštění a činnost skriptu. Umí jen celá čísla Shellový skript lze spustit syntaxí: $sh /cesta/skript.sh Skript musí být spustitelný: $chmod a+x skript.sh
13. Upravte skript, aby pracoval s destinnými čísly na 3 desetinná místa -sečtení proměnných předáme koprocesoru bc -l
Přehled použité literatury a děl: Pokud není uvedeno jinak, autorem použitých mediálních příloh (obrázků, textů, interaktivních materiálů) je autor tohoto digitálního učebního materiálu. Použité zdroje: 1.FEDORA FOUNDATION. Programování. Wiki - dokumentace projektu Fedora CZ: návody:f16 [online]. Fedoraproject.org, 2012, 2012-05-29 [cit. 2013-03-05]. Dostupné z: http://wiki.fedora.cz/doku.php?id=navody:f12:prompt#programovani 2. Martinek,D. Bourne Again Shell-BASH. [online] [cit. 2013-03-05]. Dostupné na Internetu: http://www.fit.vutbr.cz/~martinek/gymnazium/bash.html.cs.windows-1250 3. Fuchs,J. BASH-I. Seriál na webu abclinuxu.cz. [online] [cit. 2013-03-05]. Dostupné na Internetu: http://www.abclinuxu.cz/clanky/navody/bash-i