Operációs rendszerek gyakorlat 4. Gyakorlat Vakulya Gergely
2 Shell scriptek (héjprogramok) A parancsértelmező saját nyelvvel rendelkezik. Az e nyelven írt programok a shell- scriptek. Tömör, hatékony progamok készítésére alkalmas, általános célú programnyelv Az egyes shell-ek eltérő szintaxissal rendelkeznek. Mi ezek közül a Bash-sel foglalkozunk.
3 A shell script általános alakja Szöveges file-ok #!/bin/bash Program kezdete A file-nak futtatási joggal kell rendelkeznie. A shell-script bármely más programhoz hasonlóan futtatható. A bash script kiterjesztése általában.sh (opcionális)
4 Hogyan hozhatóak létre a shell-scriptek? cat > elso.sh – Működő megoldás, de kerülendő... Szövegszerkesztő használata – mcedit – joe – vi
5 A shell-script futtatása Normál futtatás: –./ide/tettem/scriptem.sh Sourcing: –. ide/tettem/scriptem.sh A két mód közti eltérés a változók használatánál mutatkozik meg.
6 Változók használata A skalár változóknak nincs típusuk, de leginkább string-ként kezelhetők. Értékadás: valtozo=ertek ertek, ”ertek”, 'ertek', helyettesítés, szóközös stringek Érték kinyerése: $valtozo,${valtozo} – echo $valtozo Összefűzés: ”$valtozo””a”
7 Parancssori argumentumok (paraméterek) A programoknak indításkor paraméterek adhatók át, pl: sciptem.sh elso_param masodik_param A paraméterek értékének kinyerése a $1, $2,... változók segítségével történik, pl: cat $1 > ”$2” echo ${3}
8 Változók átadása másik programnak Exportált változók, exprort parancs a=1 ; export a Rövidebben: export a=1 A meghívott program csak az exportált változókat látja, de csak a lokális másolatukat tudja módosítani
9 Programok visszatérési értéke C programok végén miért is van return 0; ? Visszatérési érték: Hibakód. Sikeres volt-e a program futása. echo $? ls nincs_ilyen_file ; echo $? ls ; echo $? true és false: Mindig 0 illetve 1 a visszatérési értékük.
10 Elágazás (if) if feltétel ; then parancsok ; fi else elif A feltétel egy parancs, az if a visszatérési értéket vizsgálja Több elágazás is egymásba ágyazható
11 Feltételvizsgálat (test) Nagyon gyakran az if paranccsal együtt használatos. Logikai műveletek: -a (and), -o (or) Nemüres string: -z String egyenlőség (=, !=) Matematikai relációk (-eq, -gt, -lt, -ne) File vizsgálatok: -e (létezik), -d (könyvtár), -f (sima file), -r (olvasható), stb.
12 Többszörös elágazás (case) case $valtozo in – valami) parancsok ;; – masvalami) parancsok ;; – *) parancsok esac