S z á m í t ó g é p e s a l a p i s m e r e t e k

Hasonló dokumentumok
Szkriptnyelvek. 1. UNIX shell

BASH script programozás II. Vezérlési szerkezetek

Operációs Rendszerek II. labor. 2. alkalom

1. Alapok. #!/bin/bash

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

BASH SCRIPT SHELL JEGYZETEK

BEKÉRT ADAT KÉPERNYŐRE ÍRÁSA KÖRNYEZETI VÁLTOZÓK FÁJL REDEZETT KIÍRÁSA KÖNYVTÁRBAN BEJEGYZÉSEK SZÁMA FÁJLBAN SZÁM NÖVELÉSE. #!

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

Példa: Aktuális könyvtár tartalmának fájlba mentése, melynek neve az aktuális dátum és idő: ls l > `date+%f_%h-%m`.txt

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

A héj vezérlő szerkezetei I.

Operációs rendszerek 2 3. alkalom - Reguláris kifejezések, grep, sed. Windisch Gergely windisch.gergely@nik.uni-obuda.hu

Webprogramozás szakkör

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 3. előadás

Rendszerprogramozás Linux környezetben

chmod umask chown, chgrp

S z á m í t ó g é p e s a l a p i s m e r e t e k

A shell vezérlő szerkezetei I.

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

A C# programozási nyelv alapjai

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Gyors tippek linuxra

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

További vezérlő valamint számításokat megkönnyítő szerkezetek

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

Internet programozása. 3. előadás

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED


Informatika terméktervezőknek

Csatlakozás a pandora.inf.elte.hu-re Linux alapparancsok

AWK programozás Bevezetés

Operációs rendszerek. 10. gyakorlat. AWK - bevezetés UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek 1.

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

Programozási nyelvek JAVA EA+GY 1. gyakolat

Operációs rendszerek MINB240/PMTRTNB230H

További vezérlő valamint számításokat megkönnyítő szerkezetek

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

7. Laboratóriumi gyakorlat, 1. rész : Vezérlési szerkezetek II.

Bevezetés a programozásba I.

Bevezetés az informatikába, második gyakorlat. Bevezetés Környezetváltozók és néhány egyszerű utasítás Jogosultságok Fájlkezelés

Operációs rendszerek gyak.

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Java programozási nyelv

Operációs rendszerek 1.

Mintavételes szabályozás mikrovezérlő segítségével

A C programozási nyelv II. Utasítások. A függvény.

S z á m í t ó g é p e s a l a p i s m e r e t e k

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Operációs Rendszerek példatár. Utolsó frissítés: február 10.

Komputeralgebra Rendszerek

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

A JavaScript főbb tulajdonságai

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

A perzisztens adatkezelő rendszer tesztelése és demonstrálása a GRID környezetben

Operációs Rendszerek II. labor alkalom

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

Számítógép Architektúrák. 4. Gyakorlat

Vezérlési szerkezetek

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r

Óbudai Egyetem. C programozási nyelv

length (s): Az s karaklerlánc hossza, substr(s,m,n): Az s mezőben levő karakterláncnak az m-edik karakterétől kezdődő, n darab karaktert vágja ki.

S z á m í t ó g é p e s a l a p i s m e r e t e k

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

C programozás. 1 óra Bevezetés

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Algoritmizálás + kódolás C++ nyelven és Pascalban

Programozás alapjai óra. Morvai Flórián, 2010 Dr. Dévényi Károly előadásvázlata alapján

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

PYTHON. Avagy hosszú az út a BioPythonig

Apple Swift kurzus 3. gyakorlat

Algoritmizálás és adatmodellezés tanítása 1. előadás

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Operációs rendszerek 2 1. óra: Linux alapok Ismétlés. Windisch Gergely félév

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

A programozás alapjai

6. BASH programozás I.

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

Bevezetés a programozásba I.

Operációs rendszerek gyak.

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

BATCH Programozás. Tartalomjegyzék

Python tanfolyam Python bevezető I. rész

Átírás:

S z á m í t ó g é p e s a l a p i s m e r e t e k 7. előadás

Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok

Ami ma következik Shell script programozás I. Változók Paraméterek Eredmény Input-Output Elágazások Ciklusok

Script változók Hasonló a környezeti változókhoz Változók szövegesek Aritmetikai műveletek közvetlenül nem használhatók. x=alma; y=$x+fa; echo $y # alma+fa a=5; b=$a+1; echo $b #5+1 Közvetlenül se szöveges, se aritmetikai műveleteket nem támogat!

Aritmetikai utasítások let utasítás, a bash része, régi sh-ban nincs a=2; let b=a+1; echo $b # eredmény 3 expr utasítás expr $a op $b PL: expr 3 \* 4!!! op: <,<=,>,>=,!=,=,+,-,*,/,% (mod) bc parancs (szűrő) C nyelv jellegű bemeneti szöveget vár Létezik ciklus, szögfüggvények, fv definíció,stb Példa: echo 2*16 bc #32

BC példa Egy összetettebb példa: cat bcexam1 bc -l X jogot kapott, így is indítható: bcexam1 #!/usr/bin/bc -l #a l kapcsoló a math könyvtárat használja (s-hez) define fakt (x) { if (x <= 1) return (1); return (fakt(x-1) * x); } print "Az 5 faktorialis erteke: "; print fakt(5); print "!\n"; print "A 25 négyzetgyöke: "; print sqrt(25); print "\n"; print "Színusz PI/2 értéke:"; print s(3.1415/2); print "\n"; quit

Parancs paraméterek I. Példa: legjobb csapat a Fradi! #ez parancs Mi a parancsnév? $1, $2, $3, # paraméter változók echo $1 # csapat $0 # parancs neve (legjobb) $# # paraméterek száma $* # összes paraméter, egyben $@ #külön a paraméterek, példa: param

A param példa Hívása: param fű fa szál fa echo paraméter használat echo "adjunk meg összetett paramétert is ('alma fa') #minden külön echo '$* használat' for i in $* do echo $i done #minden egyben echo '"$*" használat for ciklusban' for i in "$*" do echo $i done #'' között egyben echo '"$@" használat' # az alábbi sor a for i in "$@" alak rövid változata for i do echo $i done

Parancs paraméterek II. ${10} Tizedik paraméter, zárójelek nélkül $10, a $1-hez fűzné a 0 karaktert! Shift utasítás A paramétereket egyel balra lépteti. Ez $1-et kidobja, majd balra lépnek egyet a paraméterek: $10->$9 ($10 be $11 kerül, ha van) Jellemző feldolgozás ciklus segítségével.

Program Eredmény Minden utasításnak, parancsnak van eredménye. Eredmény értéke: $? környezeti változóban exit eredmény # eredmény:0-255, Ha az eredmény 0 az logikai igaz-ként is érthető. Többi érték hamis. (C nyelv fordítottja!)

Input-Output Legtöbb parancs szabvány kimenetre ír echo parancs Bemenetről olvas: read parancs Példa: read alma #alma változóba olvas enterig read korte; echo $korte # ok echo szia read a; echo $a # üres, a read nem szűrő

Egy shell példa Milyen formátumot várunk alma változóba? # read alma login=`echo $alma cut -f1 -d\& cut -f2 -d=` pw=`echo $alma cut -f2 -d\& cut -f2 -d=` # cat <<ali Content-Type: text/html <html> <body bgcolor="#a1c1a1"> ali echo Azonosítója: $login, jelszava: $pw! cat <<pali </body> </html> pali

Elágazások, test utasítás test, vagy [ ] logikai vizsgálat 0 igaz, 1- nem igaz, echo $? -lt,-gt.-le,-ge,-eq,-ne numerikus vizsgálat [ $x lt 5 ] =,!= sztring vizsgálat -z string igaz, ha string hossza 0 -n string igaz, ha string hossza nem 0 -f file, -d dir file vagy könyvtár létezés -o, vagy, -a az és operátor,! a tagadás [ ] esetén fontos a helyköz [ után és ] előtt

Test példák Teljes kapcsoló listához: man test $ x=4 $ [ $x lt 6 ] # test $x lt 6 $ echo $? 0 (igaz) $test z alma $echo $? 1 $ y=fradi $ [ $x -eq 4 a $y!= vasas ] $ echo $? 0 $ test f fradi # igaz, ha fradi fájl létezik $ [! $x eq 4 ] $ echo $? 1 (hamis)

Shell script elágazás if if utasítások [ $x lt 10 ] then then utasítások echo Kisebb mint 10 else else utasítások echo Nagyobb fi fi

Feltételes parancsvégrehajtás if sikeres then másikparancs fi sikeres && másikparancs if nemsikeres then másikparancs fi nemsikeres másikparancs Példa: $ echo szia && echo kata szia kata $ hamis echo almafa # hamis: exit 1 almafa

Shell többirányú elágazás case $alma in idared) echo az alma idared ;; golden) echo az alma golden ;; *) echo ismeretlen alma ;; esac

Elágazás példa I. Feladat: Olvasson be egy számot, és írja ki, hogy pozitív, vagy negatív! #!/bin/sh # beolvasás, ha az első sor megjegyzés, akkor az a shell megadása # lehet csak! #!/bin/sh read x if [ $x lt 0 ] then echo Az X változó negatív, értéke: $x else if [ $x eq 0 ] then echo A változó értéke nulla! else echo Az X változó pozitív, értéke: $x fi fi

Elágazás példák II. Tetszőleges parancs is lehet elágazás tesztelő if who grep jani >/dev/null then echo a jani be van jelentkezve else echo a jani nincs bejelentkezve fi # read x case $x in [dd]*) date ;; [ww]*) who ;; l* L*) ls l ;; *) echo rossz választás ;; esac

Shell ciklus - for for változó in adatlista do utasítások done for $i in `who` do echo $i done for i in alma körte barack do echo $i done

Shell ciklus - while while utasítások # while példa do utasítások done while echo n Írd be a neved: read nev do echo A Te neved: $nev done

Ciklus példa I. Ha a paraméter fájlnév, akkor kilistázzuk annak tartalmát #!/bin/sh # while [ $#!= 0 ] do if test -f $1 then echo $1 tartalma: cat $1 else echo $1 nem fájl! fi # paraméterek léptetése balra shift echo Még $# paraméter maradt! done

Shell ciklus - until until utasítások do done utasítás(ok) Ha az utolsó hamis, akkor végrehajtja a ciklusmagot.

Ciklus példa II. Until példa: #!/bin/sh # kezdőérték megadása v=igen until [ $v = "nem" ] do echo -n Add meg a neved: read nev echo $nev >>nevek.txt echo Folytassuk? \(igen/nem\) # Fontos a \( read v done

Ugró utasítások break Hatására az adott ciklus félbeszakad, és a done után folytatódik a végrehajtás continue Hatására a ciklusmag hátralévő részén átugrik, majd folytatódik a ciklus végrehajtás. exit [n] Kilép a programból és n lesz a visszatérési érték

Shell script függvény definiálás C stílusú, paramétereit a shell scripthez hasonlóan dolgozza fel. Példa: illes@panda:~$ cat fvpelda #!/bin/sh # szia() { echo Szia $1! } # szia Zoli illes@panda:~$ fvpelda Szia Zoli!

Parancs futtatás opciók Sh v fvpelda -v kiírja a parancsot végrehajts előtt. A teljes fv-t is! Sh x szamolvas A végrehatási szál utasításait írja ki. A v a teljes elágazást kiírja, míg a x a tesztelt logikai kifejezéseket írja csak. Sh n szamolvas Szintaktikus ellenőrzés

Script példa I. Mit csinál a következő példa? for i do case $i in [A-Z]*) F="$F $i";; [a-z]*) f="$f $i";; [0-9]*) break;; esac done echo $F echo $f

Script példa II: Csomagoljunk Példa: #!/bin/sh # echo '# csomagoló program echo # A szétszedés parancsa: sh./fájlnév # Egyenként vesszük a paramétereket for i do echo "echo $i 1>&2" echo "cat >$i <<'$i vege'" cat $i echo "$i vege" done $ csomagol forpelda valogat $. $ csomagol forpelda valogat >csomag $ sh./csomag # kicsomagolás

K ö s z ö n ö m a f i g y e l m e t! I l l é s Z o l t á n E30 L T E I K