Linux skripty Autorem materilu a vech jeho st

  • Slides: 10
Download presentation
Linux - skripty Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing.

Linux - skripty Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu www. rvp. cz, ISSN: 1802 -4785. Provozuje Národní ústav pro vzdělávání, školské poradenské zařízení a zařízení pro další vzdělávání pedogických pracovníků (NÚV).

Skripty - úvod • Co jsou to skripty? Je to prostě jen seřazený seznam

Skripty - úvod • Co jsou to skripty? Je to prostě jen seřazený seznam příkazů, které se mají vykonat. • Skriptování má své výhody. Takový skript nemusíte kompilovat • Spustíte jej na jakémkoli počítači (PC, Mac, Atari, Amiga, Sun, Sgi, . . . ) a operačním systému, kde běží Bash (Linux, BSD, Windows, Mi. NT, AIX, Solaris, . . ) • Skripty ukládáme do standardních textových souborů • Pro editaci používáme textové editory, které nepřidávají formátovací značky Linux - skripty 2

První skript • Výuku programování bývá zvykem začínat primitivním programem hello world • vytvoříme

První skript • Výuku programování bývá zvykem začínat primitivním programem hello world • vytvoříme soubor první, s následujícím obsahem: #!/bin/bash echo Hello world. • • První řádka označuje, který interpret se má použít ke „spuštění“ příslušného souboru (bash). Na rozdíl od Windows v Linuxu nezáleží na příponě souboru ale na metadatech Příkaz echo vypíše na obrazovku (standartní výstup) následující text Linux - skripty 3

Spuštění skriptu • pro spuštění musíme souboru nastavit příslušné oprávnění, povolení spouštět: chmod a+x

Spuštění skriptu • pro spuštění musíme souboru nastavit příslušné oprávnění, povolení spouštět: chmod a+x první • přepneme se do příkazového řádku a spustíme: . /první • programy v aktuálním adresáři je třeba spustit tak, že se na aktuální adresář odkážete v cestě • Cesta pro vyhledávání většinou obsahuje adresáře jako /bin nebo /usr/bin, v domovském adresáři uživatele • pokud soubor skriptu zkopírujeme tam, můžeme ho spouštět přímo: • první Linux - skripty 4

Podmínky • Průběh skriptu může někdy narazit na situaci, kde bude třeba o něčem

Podmínky • Průběh skriptu může někdy narazit na situaci, kde bude třeba o něčem rozhodnout • Za tímto účelem máme k dispozici podmínku: if [ podminka ]; then prikaz fi • Pokud je podmínka podminka pravdivá, provede se prikaz • Je však možné konstruovat i složitější podmínky, třeba jako je tato: if [ vyraz 1 ]; then prikaz 1 elif [ vyraz 2 ]; then prikaz 2 else prikaz 3 fi Linux - skripty 5

Výrazy v podmínkách • • • ! výraz negace výrazu výraz 1 -a výraz

Výrazy v podmínkách • • • ! výraz negace výrazu výraz 1 -a výraz 2 logická spojka AND výraz 1 -o výraz 2 logická spojka OR -e soubor existuje -f soubor existuje a je to soubor -d soubor existuje a je to adresář soubor 1 -nt soubor 2 soubor 1 je novější než soubor 2 soubor 1 -ot soubor 2 soubor 1 je starší než soubor 2 -n řetězec je neprázdný -z řetězec je prázdný řetězec 1 = řetězec 2 řetězce jsou shodné řetězec 1 != řetězec 2 řetězce jsou různé Linux - skripty 6

Proměnné • Operační systémy se již dlouhou dobu neobejdou bez možnosti nastavit určité parametry

Proměnné • Operační systémy se již dlouhou dobu neobejdou bez možnosti nastavit určité parametry za chodu. Využívá se k tomu nástroj zvaný proměnná prostředí Můžeme je vypsat příkazem env USER = jméno uživatele GROUPS = seznam skupin, jichž je současný uživatel členem HOME = domovský adresář HOSTNAME = jméno počítače OSTYPE = typ operačního systému PWD = aktuální pracovní adresář RANDOM = náhodné číslo do 0 do 32767 • můžeme vytvořit i vlastní proměnné PROMENNA="Moje proměnná. „ • při použití proměnné získáme hodnotu pomocí $ echo $PROMENNA Linux - skripty 7

Cyklus umožňuje provést určitou část skriptu vícekrát, třeba s různými parametry. FOR for ((

Cyklus umožňuje provést určitou část skriptu vícekrát, třeba s různými parametry. FOR for (( a=1 ; $a-4 ; a=$a+1 )) do echo $a done První z nich přiřazuje proměnné a hodnotu 1. Provede se pouze na začátku prvního průchodu. Druhý výraz slouží k rozhodování, zda se má smyčka vykonat. K vykonání dojde, pokud bude mít zde uvedený výraz hodnotu různou od nuly. V prvním průchodu je a=1, takže a-4 není nula. Před každým dalším průchodem ale bude proveden třetí výraz, kde se hodnota a zvýší vždy o 1. Ve druhém průchodu tak nabyde hodnoty 2 a ve třetím 3 Po skončení třetího průchodu bude opět aplikován třetí výraz a hodnota a se tak zvýší na čtyři. Nyní je ovšem výsledkem druhého výrazu (a-4) nula, takže čtvrtý průchod smyčkou již neproběhne. Po spuštění uvidíte číslice 1, 2 a 3 Linux - skripty 8

while a until Cykly while a until pracují tak, že opakují určitý postup, dokud

while a until Cykly while a until pracují tak, že opakují určitý postup, dokud je splněna určitá podmínka (cyklus while) nebo dokud určitá podmínka splněna není (cyklus until). Syntaxe je prakticky shodná cislo=1 until [ $cislo -eq 5 ]; První cyklus se opakuje tak dlouho, do echo "$cislo" dokud nenastane jeho podmínka, tj. cislo=$((cislo+1)) dokud proměnná cislo nabyde done hodnoty 5. Druhý cyklus se opakuje while [ $cislo -gt 0 ]; tak dlouho, dokud je jeho podmínka do echo "$cislo" splněná, tj dokud je proměnná cislo=$((cislo-1)) done větší než 0. Tento program vypíše: 123454321 Linux - skripty 9

Break a continue Někdy můžeme mít zájem běh nějakého cyklu ukončit úplně nebo nedokončit

Break a continue Někdy můžeme mít zájem běh nějakého cyklu ukončit úplně nebo nedokončit iteraci a provést další opakování. K tomu slouží příkazy break a continue: Když se do proměnné i dostala trojka, použili jsme příkaz continue, který přeskočil zbytek těla konstrukce for a přistoupil k další hodnotě, tedy ke čtyřce. V momentě, kdy se do proměnné i dostala pětka, provedl se příkaz break, který ukončil provádění celého cyklu. for i in 1 2 3 4 5 6; do if [ $i -eq 3 ]; then continue elif [ $i -eq 5 ]; then break fi echo $i done Výstupem tohoto skriptu bude 1 Linux 2 4 - skripty 10