A shell vezérlő szerkezetei I.

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "A shell vezérlő szerkezetei I."

Átírás

1 Tartalom A shell vezérlő szerkezetei I.. Mit nevezünk vezérlésnek a shell programozásban.... Vezérlési szerkezetek....2 Az igaz/hamis feltétel a shell programozásban Az &&, és! szerkezetek A test és az expr parancs A test Az expr Feltételes végrehajtás if szerkezettel A for ciklusok A while és until ciklusok A break és continue használata A shift parancs Kilépés a shell programból: az exit A read parancs...4. Mit nevezünk vezérlésnek a shell programozásban. Vezérlési szerkezetek A shell programozásban - a klasszikus programnyelvekhez hasonlítva egy "utasításnak" tulajnképpen egy kiatt parancs, illetve parancssor felel meg. Ha parancssorról beszélünk láttuk, hogy ennek szerkezete egy parancsnál több is lehet, például tartalmazhat akár 2 parancsot is csővezetékkel összekötve. Ezért sokszor a végrehajtható egységet csővezeték sorozatnak (pipeline) is nevezik. Ezt a vezérlési szerkezetek megadásánál -nak fogjuk jelölni. Ha a parancs sor valamilyen feltételt is generál, amit gyelembe veszünk, akkor feltétel_ -nak jelöljük. A parancssori szerkezetek végrehajtásának sorrendjét nevezzük vezérlésnek. Erre a shell szintaxisa különböző, úgynevezett vezérlési szerkezetet használ. A strukturált programozás elméletéből tudjuk, hogy egy klasszikus program végrehajtásához egy programozási nyelvnek a változók kezelésén kívül legalább a döntéshelyzeteket (if szerkezetek) illetve a ciklusok kezelését kell megoldania. Ezzel a kettővel bármilyen parancs végrehajtási sorrend megszervezhető. A shell vezérlő szerkezeteit eredetileg az ALGOL68 nyelvet követve alakították ki..2 Az igaz/hamis feltétel a shell programozásban A szerkezetek kialakítása miatt szükségünk van az igaz illetve hamis feltétel fogalmára. Mivel a shell alatt programok, illetve parancsok futnak, a feltételt ezek lefutása után nyert, programok által szolgáltatott visszatérési érték (program exit status) jelenti (egész pontosan ez a C programok kilépése után, az int main() függvény által visszaatt egész szám: ennek értékét a C-ben meghívott void exit(int n) függvény paraméterében adjuk meg). Ez az érték közvetlenül a parancs befejezése után, a parancs által futtatott utolsó program visszatérési értékéből áll, amely bekerül a shell speciális? nevű változójába. Ezt egyszerűen az echo paranccsal tesztelni is lehet:

2 touch.txt ls -l.txt -rw-rw-r-- lszabo lszabo 0 Oct 2 0:00.txt #végrehajtás után kiírhatom a? változót echo? 0 ls -l nemletezik ls: nemletezik: No such le or directory echo? 2 Látható, hogy jó lefutás esetén a visszatérített érték 0, míg hiba esetén eltér 0-tól, jelen esetben 2, de minden esetben egész szám (a számnak általában van pontos jelentése, és azt hogy milyen hibára utal az illető parancs kézikönyv lapján lehet megnézni. Az ls kézikönyve erről ennyit ír: "Exit status is 0 if OK, if minor problems, 2 if serious trouble"). Az is meggyelhető, hogy a teszteléseink logikája pont a fordított lesz a C, Java nyelveknél megszokottnál: itt az "igaz" feltételt a? változó 0 értéke adja. A POSIX szabvány standardizálja a programok által visszaatt értékeket, így ajánlatos ezeket programírásnál betartani. Ez az érték általában egy 255-nél kisebb előjel nélküli egész szám.? értéke Mit jelent? 0 Sikeres parancsvégrehajtás. > 0 Hiba történt a parancssor kiértékelésénél (akár az átirányításokban, behelyettesítésekben is lehet ez) A program lefutott, de hibával lépett ki. 26 A program létezik, de nem lehetett végrehajtani (pl. nincs jogunk hozzá, vagy nem egy végrehajtható bináris kód). 27 A parancs nem létezik (nem lehetett a PATH elérési útjai szerint megtalálni) > 28 A program jelzéssel állt le (pl. ha a cat futása közben lenyomjuk a ^C -t, a program 30-at térít vissza). Megjegyzés: a 28 -as kód jelentése nincs standardizálva. 2. Az &&, és! szerkezetek Az első szerkezet amit átnézünk akár egyetlen parancssoron alkalmazható a meghívott parancsok között. Amint sejthető, az && egy és, míg a egy vagy típusú feltételt fog megoldani az egymásutáni parancsvégrehajtásban. A z &&,, illetve! szerkezeteket rövidre záró operátoroknak is nevezzük (short circuit operators), mert a programozási nyelvekhez hasonlóan, a kiértékelésük leáll, ha egy logikai szerkezet végeredménye valamelyik (pl. az első) parancs végrehajtása után előre tudható. Az alábbi món használhatóak: touch.txt 2

3 ls.txt && echo 'van ilyen fájl'.txt van ilyen fájl #ha nem sikerül az ls-t lefuttatni, kiírok egy üzenetet ls.txt echo 'uzenet'.txt ls nemletezik 2>/dev/null && echo 'uzenet' ls nemletezik 2>/dev/null echo 'uzenet' uzenet Az && szerkezet végrehajtja a parancssoron következő parancsot, amennyiben az előző lefutott parancs "jól" futott le, tehát igaz visszatérített értékkel zárult. Tulajnképpen úgy is tekinthetjük, hogy az && kiértékeli a két lefutott parancs által visszatérített értéket. Logikailag a másodikat akkor értelmes végrehajtani, ha az első parancs jól lefutott. A esetében viszont a második parancsot nincs értelme végrehajtani, ha az első jól futott le, amint az a második példából (ls.txt echo 'uzenet' ) látszik. Ezzel a két egyszerű szerkezettel akár if-else struktúra is kialakítható egyetlen parancssoron két parancs között: ls.txt && echo 'van ilyen fájl' echo 'nincs ilyen fájl'.txt van ilyen fájl ls nemletezik && echo 'van ilyen fájl' echo 'nincs ilyen fájl' ls: nemletezik: No such le or directory nincs ilyen fájl A logikai kiértékelés eredménye a? változóban marad miután az utolsó parancs is lefutott a feltételsorozatból. Így, amint látni fogjuk, a teljes "logikai kifejezés" bonyolultabb feltételek programozására is használható. A! operátornak egy jobb oldalon található parancs operandusa kell legyen, segítségével a visszaatt? változó értéke negálható:! ls *.txt.txt 2.txt felhasznalok.txt echo? 3. A test és az expr parancs 3. A test Az előzőleg lefutott program visszatérési értékén kívül, gyakran tesztelünk: -állományok tulajnságait (létezik-e, írható-e, olvasható-e, stb.) -karakterláncokat (vagy változókat, amelyek karakterláncot tartalmaznak: létezik-e, mennyi az értéke) -számszerű értékeket (számokat tartalmazó karakterláncokat) A három típusú teszt elvégzését egy shell parancsban valósították meg. A parancs argumentumként megkapja a tesztelendő állománynevet, karakterláncot, számot tartalmazó változót, lefut és 3

4 visszatérési értékében közli a teszt igaz vagy hamis voltát, a már említett fordított logikával. A parancsot test -nek nevezik, és megtalálható külső parancs illetve a shell-be épített parancs formájában is (mivel igen gyakran használjuk). A test hívásakor az argumentumok szerkezete különbözik, ha állománynévről, karakterláncról illetve számról van szó. Általánosan ezt így adjuk meg: test kifejezés de az alábbi szintaxissal is hívható: [ kifejezés ] A test az alábbi kifejezéseket fogadja el (a teljes lista megtalálható a man test -ben, itt csak az általunk laboron használt kifejezések találhatóak): Állományok tesztelése: -d le Igaz ha a le létezik és könyvtár. -e le Igaz ha a le létezik. -f le Igaz ha a le létezik és szabályos fájl. -L le Igaz ha a le létezik és szimbolikus hivatkozás (szimbolikus link). -r le Igaz ha a le létezik és olvasható. -s le Igaz ha a le létezik és 0-nál nagyobb méretű. -w le Igaz ha a le létezik és írható. -x le Igaz ha a le létezik és végrehajtható. -O le Igaz ha a le létezik és az aktuális felhasználó tulajnában van. -G le Igaz ha a le létezik és az aktuális csoport tulajnában van. le -nt le2 Igaz ha le újabb (a mósítási időt tekintve), mint le2. le -ot le2 Igaz ha le régebbi, mint le2. le -ef le2 Igaz ha le és le2 -nek azonos eszköz- és i-node számuk van. Karakterláncok tesztelése: -z string Igaz ha a string 0 hosszúságú. -n string string Igaz ha a string nem 0 hosszúságú (kétféleképpen lehet tesztelni). string = string2 4

5 Igaz ha a stringek megegyeznek. string!= string2 Igaz ha a stringek nem egyeznek meg. Logikai tesztek két test kifejezés között:! expr Igaz ha expr hamis. expr -a expr2 Igaz ha expr és expr2 is igaz. (Logikai 'és'.) expr -o expr2 Igaz ha expr vagy expr2 igaz. (Logikai 'vagy'.) Számokat tartalmazó karakterláncok összehasonlítása: Operációs rendszerek I. - UNIX felhasználói ismeretek és héjprogramozás arg OP arg2 az OP operátor valamelyik a következőkből: -eq, -ne, -lt, -le, -gt, -ge. (a rövidítések régebbi programozási nyelvekben voltak használatosak: equal, not equal, less, less or equal, greater, greater or equal stb. műveleteket jelentik). Ezek az aritmetikai operátorok igaz értéket adnak, ha arg rendre egyenlő, nem egyenlő, kisebb mint, kisebb vagy egyenlő, nagyobb mint, nagyobb vagy egyenlő mint arg2. arg és arg2 pozitív vagy negatív egész kell legyen, vagy pedig a - l string speciális kifejezés, amely a sztring hosszát jelenti. A klasszikus (Bourne) shell csak egész számokat tud így összehasonlítani, a Korn shell valósakat is. Álljon itt néhány példa is. A test lefuttatása után azonnal meghívjuk az echo? parancsot, hogy lássuk a teszt eredményét. touch.txt touch 2.txt chmod a-w 2.txt # létezik-e a le test -f.txt ; echo? 0 # könyvtár-e test -d.txt ; echo? # írható-e test -w.txt ; echo? 0 # létrehozok 2 sztringet a='abc' b='def' # a a hossza 0? test -z a ; echo? 5

6 # a egyenlő-e b-vel test a = b ; echo? # létrehozok 2 sztringet amelyek számot tartalmaznak x=2 y=3 # x értéke kisebb mint y? test "x" -lt "y" ; echo? 0 # x értéke kisebb mint? test "x" -lt "" ; echo? Valamennyi esetben a [ ] szintaxissal is hívható a teszt, tehát az utolsó esetre például írhatjuk: [ "x" -eq "y" ] ; echo? Fontos: a test kifejezések minden operandusa és operátora között elválasztó karakter kell legyen (szóköz). 3.2 Az expr Az expr parancsot egyszerű kis műveletek elvégzésére alakították ki shell változók között, mint például két számértéket tartalmazó változó összeadása (amire gyakran van szükség vezérelt végrehajtás során). Ma már ritkábban használják, mert a Korn és Bourne shellnek van jobb megoldása a műveletek elvégzésére és ezt a Bash is átveszi (a (( )) szerkezet). Ennek ellenére, használata előfordul, és kezdetnek, két szám közti művelet elvégzésére megteszi. Az expr tud még karakterláncokkal is műveleteket végezni. Használat: expr kifejezés Az expr a kimenetre írja ki a kifejezés eredményét, és parancssor behelyettesítéssel lehet azt egy másik változóba átvenni. Az expr által elfogatt aritmetikai és logikai kifejezések az alábbiak: ARG ARG2 ARG ha az nem 0 vagy null sztring, egyébként ARG2 ARG & ARG2 ARG ha egyik argumentum sem 0 vagy null sztring, másképp 0 ARG < ARG2 ARG kisebb mint ARG2 ARG <= ARG2 ARG kisebb vagy egyenlő ARG2 ARG = ARG2 ARG egyenlő ARG2 ARG!= ARG2 ARG nem egyenlő ARG2 ARG >= ARG2 ARG nagyobb vagy egyenlő ARG2 6

7 ARG > ARG2 ARG nagyobb ARG2 ARG + ARG2 aritmetikai összeg: ARG + ARG2 ARG - ARG2 aritmetikai különbség ARG - ARG2 ARG * ARG2 aritmetikai szorzat ARG * ARG2 ARG / ARG2 aritmetikai osztás ARG / ARG2 ARG % ARG2 aritmetikai maradéka az ARG / ARG2-nek STRING : REGEXP mintaillesztés a STRING első karakterétől match STRING REGEXP ugyanaz mint a mintaillesztés STRING : REGEXP substr STRING POS LENGTH visszaadja a STRING-ből a LENGTH hosszúságú alsztringet POS-tól kezdve index STRING CHARS visszaadja azt az indexet a STRING-ből ahol bármelyik CHARS halmazban levő karakter található length STRING a STRING hosszát adja vissza Például: expr a=(expr 2 + 3) echo a 5 A második példából látható, hogyan kell átvenni változóba a kiszámított értéket. Az expr használatánál vigyázni kell az olyan műveleti jelekre, amelyek shell metakarakerek is. Ezeket backslash jelöléssel kell használni, mint például a szorzást, mert először a shell értelmezi, és nyílván átírja őket, ha nem használuk a \ -t: expr 3 \* 4 2 Ugyanebbe a kategóriába esnek a <, >, &, jelek. 4. Feltételes végrehajtás if szerkezettel A feltételes végrehajtást az if szerkezettel vezéreljük, amely megoldja, hogy egy bizonyos feltételtől függően egyik vagy másik parancssor legyen végrehajtva. Ez a szerkezet természetesen egy végrehajtott parancs visszatérési értékétől függően dönt a további végrehajtásról. Használata: if feltétel_... else 7

8 ... vagy többszörös feltétel esetén: if feltétel_... elif feltétel_... else... A feltételt jelentő parancssorban bármilyen végrehajtható, akár egyedülálló, akár csővezetékkel összekötött parancs lehet. Leggyakrabban a test parancsot használjuk itt a döntések megvalósítására, de lehet ott bármilyen egyéb parancs is. Példa a test parancs használatára if szerkezetben: ha a fájl írható a felhasználó számára, akkor írok egy sort a végére, másképp hibaüzenetet írok ki: szoveg="utolsó sor a fájl végére" lenev=".txt" #tesztelem, hogy a fájl írható-e if [ -w "lenev" ] echo szoveg >> lenev echo "Szoveg a fájl végére írva!" else echo "lenev" nem írható Figyelem: a test zárójelezésénél a [ ] zárójelek mindkét oldalán egy elválasztó szóközt kell hagyni: if [ -w "lenev" ] # ^ ^ ^ ^ a nyilak fölött szóköz van!!! De használhatok feltételnek egy egyszerű parancsot is, például: belépek az elso könyvtárba, ha az létezik, egyébként hibát írok ki: #megpróbálok belépni az elso könyvtárba if cd elso 2>/dev/null echo "sikerült a könyvtárba lépni." else echo "nincs elso könyvtár." 8

9 Ezekben az esetekben nem mindig van szükségünk a feltételként használt parancs kimenetére vagy hibakimenetére, így ezeket a null eszközre vagy napló állományba irányítjuk. Példa csővezeték használatára a feltételben: #a feltételben egy hosszabb parancsort hívok meg #és elő is állítok egy listát if cat /etc/passwd cut -f -d ":" sort > felhasznalok.txt echo 'megvan a felhasználók listája' else echo 'nem sikerült előállítani a listát' Ugyanakkor az említett &&, illetve! szerkezeteket is használhatjuk a feltétel parancssorán bonyolultabb döntések kivitelezéséhez. Az alábbi szkript törli az.txt állományt ha az írható és a mérete 0 byte: le=".txt" #tesztelem, hogy írható-e a fájl és hossza 0 #a hossz tesztelésénél megnézem, hogy nagyobb-e mint 0 és tagam if [ -w "le" ] &&! [ -s "le" ] rm "le" echo le törolve (a -s operátor igazat ad vissza, ha a fájl hossza nagyobb mint 0 byte). A fenti példában két teszt parancs kimenetén végzünk logikai műveletet. Az if vagy else ág a feltételes végrehajtásnál nem lehet üres (tehát valamit végre kell ott hajtani). Amennyiben a programozás során mégis üres ágat akarunk használni, a shell üres utasítását kell használnunk, a melyet a : szimbólummal hívunk meg: if [ -w "le" ] &&! [ -s "le" ] rm "le" echo le törolve else : 5. A for ciklusok A for ciklus egy listán végez iterációt. A lista elemei az általunk használt legtöbb eseteben karakterláncok. Használata: for i in lista 9

10 ne A -ban a i változó használható, és sorra felveszi a lista elemeinek értékét. A lista opcionális: amennyiben elhagyjuk, tehát használata így alakul: for i ne a i változó a parancssor paraméterein iterál, tehát változóban található sztringeket járja végig. Megadunk néhány példát: Egy általunk megatt lista végigjárása (for.sh): for i in abc def ghi echo i ne sorban az abc, def, ghi karakterláncokat fogja kiírni. Futtatásnál ezt látjuk: bash for.sh abc def ghi Ha pl. számokat akarunk végigjárni, akkor azokat a UNIX seq parancsával generálhatunk (for2.sh): for i in (seq 5) echo i ne bash for2.sh Látható, hogy ezúttal a listát parancssor behelyettesítéssel generáltuk a ( ) szerkezettel. A seq parancs kiír egy számokból álló szekvenciát, a korlátokat és a lépésközt az argumentumokban lehet megadni. Az implicit lépés az. Pl. a seq 2 0 hívás -től 0-ig írja ki a számokat, de csak minden másodikat. Egy könyvtárban található állományneveket pedig az alábbi ciklussal járjuk végig (for3.sh): 0

11 for f in ( ls ) echo f ne bash for3.sh.txt 2.txt megjegyzés: a bash itt a ls parancsot és nem az ls aliast hívja meg, ezért a visszaatt listába nem kerülnek színes kijelzést vezérlő karakterek, ami zavaró lenne. 6. A while és until ciklusok A while illetve until ciklusok feltételét ugyanúgy állítjuk elő, mint az if szerkezetét. A while addig folytatja a ciklust míg feltétele igaz értékkel lép ki, az until pedig amíg a feltétel hamis. Használatuk: és while feltétel_... ne until feltétel_... ne A while ciklust sokkal gyakrabban használjuk. Az alábbi példában addig olvasunk a terminálról, amíg az "end" szót gépeljük be. A példában a shell read parancsát használjuk: pontos használatát lásd a fejezet végén. line="" end="end" #addig olvas sorokat a terminalrol, amig begepeljuk #az abc sztringet while [ "line"!= "end" ] read line ne A while ciklust úgy kell tekinteni, mint egyetlen összefüggő parancssori elemet a kimenet és

12 bemenet szempontjából. Így csővezetéket irányíthatunk bele illetve állományt irányíthatunk a bemenetére. Az alábbi két példa végigolvassa egy állomány sorait, az első egy csővezetéken keresztül kapja a bemenetet: cat '.txt' while read line echo line #fellgozas itt ne Megjegyzés: a fenti példa esetében, amikor a while ciklusba csővezetéket irányítunk, a szerkezet parancsai új shell-ben (új folyamatban - lásd folyamatok c. fejezet - úgynevezett subshell-ben) hajtódnak végre. Így azok a változók, amelyeket a while belsejében hozunk létre, nem fognak látszani az indító shell-ből. Ez csak bizonyos shell-ekben van így, például a bash-ben. Pl. az alábbi szkriptben nem tudjuk a ciklus után kiírni az a változót: cat.txt while true a=2 break ne echo a Az alábbi while-ba pedig állományból irányítjuk a bemenetet: while read line echo line ne < '.txt' #fellgozas itt Az until ciklus akkor hasznos, ha valamilyen eseményt kell gyelni, és van egy változóm amelyik a ciklus végrehajtása közben, valamilyen esemény hatására kap értéket. Ennek ellenére, nagyon ritkán használjuk. # #az until szerkezet ciklus negativ logikaval #a teszt azt gyeli, hogy mekkora a line változó hossza #az első ciklusban meg nem is létezik until [ line ] echo 'A line valtozo erteke: ' "line" echo "Usse be pontosan az \"abc\" sztringet" read line #ha nem abc-t utott be, akkor torlom a valtozot #a shell unset parancsaval if [ "line"!= "abc" ]; 2

13 ne unset line A shell unset parancsa törli a megatt változót. Megjegyzés: A megfelelő ciklus szerkezet kiválasztása a héjprogramozásban nem annyira kötött, mint a strukturált programozásban, ahol a kiértékelt feltételtől függően illik tudni, hogy melyiket kell választani. Itt lazább lehet az ember, és azt választja amelyik jobban tetszik. 7. A break és continue használata A két shell utasítás hasonlóan működik a C-ből megszokott ciklus elhagyás utasításokkal. A break megszakítja a ciklust ott ahol megjelenik (és a ciklus utáni parancson folytatja), a continue nem fejezi be a kurrens ciklust hanem a következő iterációra lép. Megjegyzendő, hogy a break használható többszintű ciklusból való teljes kilépésre, pl. a break 2 elhagy egy 2 szintes ciklust. Az alábbi példában a break egy feltétel hatására elhagy egy végtelen ciklust. A végtelen ciklust a shell true parancsával vezéreljük, amelyik mindig igazat térit vissza (létezik az ellenkezője is, a false parancs, amelyik hamisat térít vissza a? -be). A read parancs -p kapcsolója egy készenléti jelet megadó karakterláncot ír ki. #vegtelen ciklus while true read -p "Írjon be egy sort:" line #ha nem üres a beolvasott sor kilepek a ciklusbol if [ -n "line" ] break ne 8. A shift parancs A shift "eltolja" a parancssor argumentumait egy argumentummal balra. Ugyanakkor a # változó értéke is változik, egyel csökken. Az alábbi példában a szkript kiír minden parancssori argumentumot, de úgy, hogy mindig a változót írja ki. A shift pedig minden ciklusban a átnevezi a,...,9 speciális változókat, úgy hogy a megfelelő parancssori értékeknek egyel kisebb számjegy nevű változót rendel. while [ # -gt 0 ] #amíg van még argumentum echo A '#' értéke: #, a '' értéke: shift ne 3

14 a végrehajtáskor ezt látjuk: Operációs rendszerek I. - UNIX felhasználói ismeretek és héjprogramozás./shift.sh a b c d A # értéke: 4, a értéke: a A # értéke: 3, a értéke: b A # értéke: 2, a értéke: c A # értéke:, a értéke: d A shift -et paraméterrel is meg lehet hívni, olyankor a paraméternek megfelelő számmal forgatja el a parancssor argumentumait, tehát a shift 2 hívás kettővel. 9. Kilépés a shell programból: az exit A shell programokból az exit paranccsal lépünk ki, melynek egy egész számból álló paramétere van, ez lesz a szkript visszatérítési értéke. Ha jól, hiba nélkül fut le a programunk, ez az érték 0 kell legyen. Az alábbi példa leteszteli, hogy a programunknak van-e legalább egy paramétere. Ha nincs, hibával lép ki. #tesztelem, hogy a parancssor első paraméterének 0 -e a hossza if [ -z "" ] echo legalább egy paraméter szükséges! exit # fellgozás itt exit 0 Ha elfelejtjük a program végéről az exit -et, az utolsó végrehajtott parancs által visszatérített érték marad a? változóban. 0. A read parancs A read parancs beolvas egy sort a parancssorról egy változóba vagy változó listába. Ha egy változót adunk meg a parancssorán, akkor a teljes sort abba olvassa, ha többet akkor a sort feldarabolja a shell implicit elválasztói szerint (szóköz és tabulátor) és a változók felveszik a szavak értékeit. read line tehát az egész sort a line-ba téríti vissza, read szo szo2 szo3 pedig a beütött szavakat a szo, szo2 stb. -be írja. fontosabb kapcsolói: -p prompt kiír egy készenléti jel karakterláncot olvasás előtt 4

15 -s silent: nem használ visszhangot, tehát nem látjuk a leütött betűket: jelszó beolvasásra jó -t timeout vár timeout másodpercig, ha az alatt nem ütünk be semmit, visszatér -n nchar csak nchar darab karaktert olvas, utána visszatér -d kar delimiter: más elválasztót keres a sorok végén mint az újsor karaktert A read igaz értékkel tér vissza a 0 -ban ha sikerült beolvasnia. Fájl vége (^D) esetén hamissal tér vissza, így lehet egy hosszabb beolvasási sorozatot leállítani. Az alábbi read kiír egy rövid szöveget, és siker esetén a sort visszatéríti a line változóba: read -p "Írd be a neved:" line Írd be a neved: Az alábbi csak 3 másodpercig vár, és csak egy karaktert olvas be az igen_nem változóba, utána visszatér: read -p "Igen vagy nem [I/N]?:" -n -t 3 igen_nem Igen vagy nem [I/N]?: Megjegyzés: a read -el egyelőre csak a standard bemenetről fogunk olvasni, ez az implicit működési módja. A parancs tud bármilyen állományból olvasni, ha megadjuk az állomány azonosítóját. Ezt a -u kapcsolóval lehet elérni. Az állományt ezt megelőzően az exec paranccsal meg kell nyitni és használat után le kell zárni egy bemenet lezáró operátorral. Ennek módjára adunk most egy példát, de mi nem fogjuk így használni a read-et. exec 6< ".txt" #állomány megnyitása 6-os azonosítóval read -u 6 line #egy sor beolvasása echo line exec 6<&- #állomány lezárása 5

A héj vezérlő szerkezetei I.

A héj vezérlő szerkezetei I. Tartalom A héj vezérlő szerkezetei I. 1.Vezérlés a héj programozásban...1 1.1.Vezérlési szerkezetek...1 1.2.Az igaz/hamis feltétel a héjprogramozásban...1 2.Az &&, és! szerkezetek...2 3.A test és az expr

Részletesebben

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

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. 7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. A gyakorlat célja: 1. A shell vezérlő szerkezetei használatának gyakorlása. A használt vezérlő szerkezetek: if/else/fi, for, while while, select, case,

Részletesebben

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

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

Részletesebben

Szkriptnyelvek. 1. UNIX shell

Szkriptnyelvek. 1. UNIX shell Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek

Részletesebben

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

7. Laboratóriumi gyakorlat, 1. rész : Vezérlési szerkezetek II. 7. Laboratóriumi gyakorlat, 1. rész : Vezérlési szerkezetek II. A gyakorlat célja: 1. A shell vezérlő szerkezetei használatának gyakorlása. A használt vezérlő szerkezetek: if/else/fi, for, while while,

Részletesebben

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

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >> I. Alapok Interaktív shell-ben vagy shell-scriptben megadott karaktersorozat feldolgozásakor az első lépés a szavakra tördelés. A szavakra tördelés a következő metakarakterek mentén zajlik: & ; ( ) < >

Részletesebben

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.

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. Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód

Részletesebben

1. Alapok. #!/bin/bash

1. Alapok. #!/bin/bash 1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk

Részletesebben

BASH SCRIPT SHELL JEGYZETEK

BASH SCRIPT SHELL JEGYZETEK BASH SCRIPT SHELL JEGYZETEK 1 TARTALOM Paraméterek... 4 Változók... 4 Környezeti változók... 4 Szűrők... 4 grep... 4 sed... 5 cut... 5 head, tail... 5 Reguláris kifejezések... 6 *... 6 +... 6?... 6 {m,n}...

Részletesebben

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

S z á m í t ó g é p e s a l a p i s m e r e t e k 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

Részletesebben

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

További vezérlő valamint számításokat megkönnyítő szerkezetek Tartalom További vezérlő valamint számításokat megkönnyítő szerkezetek 1. A case szerkezet...1 2. A select szerkezet...3 3. Aritmetikai kiértékelés: számítások a (( )) szerkezettel...4 4. A C stílusú for

Részletesebben

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

Operációs Rendszerek II. labor. 2. alkalom Operációs Rendszerek II. labor 2. alkalom Mai témák (e)grep Shell programozás (részletesebben, példákon keresztül) grep Alapvető működés: mintákat keres a bemeneti csatorna (STDIN vagy fájl) soraiban,

Részletesebben

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

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport 10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)

Részletesebben

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

További vezérlő valamint számításokat megkönnyítő szerkezetek Tartalom További vezérlő valamint számításokat megkönnyítő szerkezetek 1.A case szerkezet...1 2.A select szerkezet...3 3.Aritmetikai kiértékelés: számítások a (( )) szerkezettel...4 4.A C stílusú for ciklus...6

Részletesebben

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

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - szintaxis, vezérlési szerkezetek Operációs rendszerek 11. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik

Részletesebben

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

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED BASH bevezetés, script írása, futtatása Operációs rendszerek 4. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik

Részletesebben

Az állományok kezelésére használt fontosabb parancsok

Az állományok kezelésére használt fontosabb parancsok Függelék a 3 fejezethez Az állományok kezelésére használt fontosabb parancsok Tartalom Az ls parancs1 A mkdir parancs2 Az rmdir parancs2 A cp parancs3 A rm parancs4 Az mv parancs4 Az állományok kezeléséhez

Részletesebben

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK Mérési Utasítás Linux/Unix jogosultságok és fájlok kezelése Linux fájlrendszerek és jogosultságok Linux alatt, az egyes fájlokhoz való hozzáférések szabályozása érdekében a fájlokhoz tulajdonost, csoportot

Részletesebben

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

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa

Részletesebben

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

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába 8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába A gyakorlat célja: 1. A gyakorlat célja a reguláris kifejezések használatának megismerése. A grep parancs használatának elsajátítása

Részletesebben

6. BASH programozás I.

6. BASH programozás I. 6. BASH programozás I. A BASH héj, mint a legtöbb héj, nemcsak egy felhasználói felület, de kifinomult, magasszintű programozási nyelvet megvalósító értelmező program (interpreter) is. A BASH ezzel a nyelvvel

Részletesebben

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

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába 8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába A gyakorlat célja: 1. A gyakorlat célja a reguláris kifejezések használatának megismerése. A grep parancs használatának elsajátítása

Részletesebben

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

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Reguláris kifejezések - alapok, BASH Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor

Részletesebben

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

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás

Részletesebben

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

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED BASH recap, reguláris kifejezések Operációs rendszerek 9. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor

Részletesebben

A C programozási nyelv VI. Parancssori argumentumok File kezelés

A C programozási nyelv VI. Parancssori argumentumok File kezelés A C programozási nyelv VI. Parancssori argumentumok File kezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv VI. (Parancssori argumentum, file kezelés) CBEV6 / 1 Parancssori

Részletesebben

chmod umask chown, chgrp

chmod umask chown, chgrp 5. Gyakorlat chmod umask chown, chgrp csak a tulajdonos tudja átállítani ezeket a jogokat r=4, w=2, x=1 pl:r+x=5 s-setuid bit /root jogosultságot igénylőprogramokhoz (u=rwxs) chmod 751 proba.txt chmod

Részletesebben

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

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 Beépített változók (paraméterezés): $# - paraméterek száma $1...9 - az adott paraméter értéke $0 - az adott héjprogram neve $* - az összes paraméter egyben Idézőjelek típusai: ' ' - belső szöveg stringként

Részletesebben

Vezérlési szerkezetek

Vezérlési szerkezetek Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását

Részletesebben

Programozás Minta programterv a 1. házi feladathoz 1.

Programozás Minta programterv a 1. házi feladathoz 1. Programozás Minta programterv a 1. házi feladathoz 1. Gregorics Tibor 1. beadandó/0.feladat 2008. december 6. EHACODE.ELTE gt@inf.elte.hu 0.csoport Feladat Egy osztályba n diák jár, akik m darab tantárgyat

Részletesebben

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

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Python Változók Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Név Érték Típus Memóriacím A változó értéke (esetleg más attribútuma is) a program futása alatt

Részletesebben

Operációs rendszerek gyak.

Operációs rendszerek gyak. Operációs rendszerek gyak. Linux alapok III., Bash Cirok Dávid Hirling Dominik Szegedi Tudományegyetem Cirok.David@stud.u-szeged.hu Hirling.Dominik@stud.u-szeged.hu Linux alapok III., Bash 1 Linkelés 2

Részletesebben

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

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva! A PL/SQL alapelemei Karakterkészlet Az angol ABC kis- és nagybetűi: a-z, A-Z Számjegyek: 0-9 Egyéb karakterek: ( ) + - * / < > =! ~ ^ ; :. ' @ %, " # $ & _ { }? [ ] Szóköz, tabulátor, kocsivissza A kis-

Részletesebben

Linux alapok. Parancsok általános alakja parancs kapcsolók paraméterek

Linux alapok. Parancsok általános alakja parancs kapcsolók paraméterek Linux alapok Parancsok általános alakja parancs kapcsolók paraméterek Könyvtárszerkezet abszolút útvonal útvonal megadása a gyökérből kiindulva / gyökérkönyvtár relatív útvonal útvonal megadása az aktuális

Részletesebben

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

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába 8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába A gyakorlat célja 1. A reguláris kifejezések használatának megismerése. Az egrep parancs használatának elsajátítása 2. További

Részletesebben

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. #!

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. #! BEKÉRT ADAT KÉPERNYŐRE ÍRÁSA #A script bekér egy nevet és egy kort, majd kiírja a képernyőre echo -n "Adja meg a nevét: " read NEV echo -n "Adja meg az életkorát: " read KOR echo "Az Ön neve: $NEV, kora:

Részletesebben

A programozás alapjai

A programozás alapjai A programozás alapjai Változók A számítógép az adatokat változókban tárolja A változókat alfanumerikus karakterlánc jelöli. A változóhoz tartozó adat tipikusan a számítógép memóriájában tárolódik, szekvenciálisan,

Részletesebben

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

Operációs rendszerek 2 3. alkalom - Reguláris kifejezések, grep, sed. Windisch Gergely windisch.gergely@nik.uni-obuda.hu 2010-2011 2. Operációs rendszerek 2 3. alkalom - Reguláris kifejezések, grep, sed Windisch Gergely windisch.gergely@nik.uni-obuda.hu 2010-2011 2. félév Reguláris kifejezések Reguláris kifejezésekkel lehet keresni egy

Részletesebben

Webprogramozás szakkör

Webprogramozás szakkör Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozás

Részletesebben

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

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő

Részletesebben

Operációs rendszerek 1.

Operációs rendszerek 1. Operációs rendszerek 1. BASH programozás szintaktikai alapok Balla Tibor balla.tibor@inf.unideb.hu BASH UNIX rendszerhéj GNU Project Bourne again - born again SH Irodalom Bash Reference Manual (http://www.gnu.org/software/bash/manual/bashref.html)

Részletesebben

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

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,

Részletesebben

Szövegek C++ -ban, a string osztály

Szövegek C++ -ban, a string osztály Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string

Részletesebben

Munka állományokkal. mv: áthelyezés (átnevezés) rm: törlés. rmdir: üres könyvtár törlése. -r, -R: rekurzív (könyvtár) -r, -R: rekurzív (könyvtár)

Munka állományokkal. mv: áthelyezés (átnevezés) rm: törlés. rmdir: üres könyvtár törlése. -r, -R: rekurzív (könyvtár) -r, -R: rekurzív (könyvtár) man!!! Man Munka állományokkal cd :az aktuális könyvtár (.) beállítása (alapesetben a ~ könyvtárra) pwd: aktuális könyvtár kiiratása mkdir: új könyvtár létreh cp: másolás -r, -R: rekurzív (könyvtár) mv:

Részletesebben

AWK programozás Bevezetés

AWK programozás Bevezetés 09 AWK programozás Bevezetés AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa és feldolgozhatóvá

Részletesebben

Operációs rendszerek. 3. gyakorlat. Jogosultságkezelés, linkelés, csővezeték UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 3. gyakorlat. Jogosultságkezelés, linkelés, csővezeték UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Jogosultságkezelés, linkelés, csővezeték Operációs rendszerek 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik

Részletesebben

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (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) Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,

Részletesebben

Szoftvertervezés és -fejlesztés I.

Szoftvertervezés és -fejlesztés I. Szoftvertervezés és -fejlesztés I. Operátorok Vezérlési szerkezetek Gyakorlás 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik.

Részletesebben

Komputeralgebra Rendszerek

Komputeralgebra Rendszerek Komputeralgebra Rendszerek Programozás Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék 2014. február 23. TARTALOMJEGYZÉK 1 of 28 TARTALOMJEGYZÉK I 1 TARTALOMJEGYZÉK 2 Értékadás MAPLE -ben SAGE -ben 3

Részletesebben

C programozási nyelv

C programozási nyelv C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György

Részletesebben

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. Például (bemenet/pelda.

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. Például (bemenet/pelda. Berezvai Dániel 1. beadandó/4. feladat 2012. április 13. BEDTACI.ELTE Programozás 3ice@3ice.hu 11. csoport Feladat Madarak életének kutatásával foglalkozó szakemberek különböző településen különböző madárfaj

Részletesebben

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

Programozás alapjai. 1. - 2. óra. Morvai Flórián, 2010 Dr. Dévényi Károly előadásvázlata alapján Programozás alapjai 1. - 2. óra Morvai Flórián, 2010 Dr. Dévényi Károly előadásvázlata alapján Bemutatkozás Morvai Flórián Morvai.Florian@stud.u-szeged.hu csak egyetemi címről www.stud.u-szeged.hu/morvai.florian

Részletesebben

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

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. február 18. Minimum és maximumkeresés u s i n g n a m e s p a c e s t d ; i n t main ( ) { c o u t

Részletesebben

A sed folyamszerkesztő

A sed folyamszerkesztő A sed folyamszerkesztő 1. Bevezető...1 2. A sed parancssora...1 3. A sed működése...2 4. A sed parancsai...3 A címek megadása...3 Gyakran használt parancsok...4 Ritkábban használt parancsok...7 A hold

Részletesebben

Bevezetés jogosultságkezelés, csővezeték, átirányítások. BASH script programozás

Bevezetés jogosultságkezelés, csővezeték, átirányítások. BASH script programozás 01 Bevezetés jogosultságkezelés, csővezeték, átirányítások BASH script programozás Berta Árpád berta@inf.u-szeged.hu www.inf.u-szeged.hu/~berta Irinyi magasföldszint, Mesterséges Intelligencia kutatócsoport,

Részletesebben

Alapfogalmak a héj (shell) használatához

Alapfogalmak a héj (shell) használatához Alapfogalmak a héj (shell) használatához 1. A shell - definíció és típusok...1 Alias-ok (helyettesítő nevek)...4 2. A parancsvégrehajtás...4 3. A shell változói...5 A {} jelölés...6 Az echo parancs...7

Részletesebben

Occam 1. Készítette: Szabó Éva

Occam 1. Készítette: Szabó Éva Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti

Részletesebben

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

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv PHP A PHP rövidítés jelentése hivatalosan: PHP Hypertext Preprocessor. Ez egy kiszolgáló-oldali parancsnyelv, amit jellemzően HTML oldalakon használnak. A különbség a két nyelv között az, hogy a kiszolgáló

Részletesebben

Lekérdezések az SQL SELECT utasítással

Lekérdezések az SQL SELECT utasítással Lekérdezések az SQL SELECT utasítással Az SQL SELECT utasítás lehetőségei Vetítés Kiválasztás 1. tábla 1. tábla Összekapcsolás 1. tábla 2. tábla Elemi SELECT utasítások SELECT * {[DISTINCT] column expression

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve

Részletesebben

A sed folyamszerkesztő

A sed folyamszerkesztő A sed folyamszerkesztő 1.Bevezető...1 2.A sed parancssora...1 3.A sed működése...2 4.A sed parancsai...3 4.1.A címek megadása...3 4.2.Gyakran használt parancsok...5 4.3.Ritkábban használt parancsok...8

Részletesebben

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.

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. 9. Gyakorlat AWK 2 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. Ha az n-et elhagyjuk, akkor az m-ediktől

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 6. gyakorlat C++ alapok, szövegkezelés Surányi Márton PPKE-ITK 2010.10.12. Forrásfájlok: *.cpp fájlok Fordítás: a folyamat, amikor a forrásfájlból futtatható állományt állítunk

Részletesebben

Bevezetés a C++ programozásba

Bevezetés a C++ programozásba Bevezetés a C++ programozásba A program fogalma: A program nem más, mint számítógép által végrehajtható utasítások sorozata. A számítógépes programokat különféle programnyelveken írhatjuk. Ilyen nyelvek

Részletesebben

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

Operációs rendszerek. 10. gyakorlat. AWK - bevezetés UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - bevezetés Operációs rendszerek 10. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik Viktor 1 / 15 Reguláris

Részletesebben

Java gyakorlat feladatai e s megolda sai (2014.04.10)

Java gyakorlat feladatai e s megolda sai (2014.04.10) Java gyakorlat feladatai e s megolda sai (2014.04.10) 1. Feladat Számítsuk ki a Fibonacci sorozat első 20 tagját! / Fibonacci számsorozat tagjait kiszámoló, egyetlen osztályból álló program @author Bence

Részletesebben

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

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Javascript Változók Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai): Név Érték Típus Memóriacím A változó értéke (esetleg más attribútuma is) a program futása

Részletesebben

Java programozási nyelv

Java programozási nyelv Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék

Részletesebben

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

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

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 Haskell 1. 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 elég jól elkerülhetők így a mellékhatások könnyebben

Részletesebben

Flex tutorial. Dévai Gergely

Flex tutorial. Dévai Gergely Flex tutorial Dévai Gergely A Flex (Fast Lexical Analyser) egy lexikáliselemz -generátor: reguláris kifejezések sorozatából egy C/C++ programot generál, ami szövegfájlokat képes lexikai elemek sorozatára

Részletesebben

Operációs rendszerek MINB240/PMTRTNB230H

Operációs rendszerek MINB240/PMTRTNB230H Biztonsági környezet Operációs rendszerek MINB240/PMTRTNB230H 12. Előadás Biztonság Biztonság és védelemi mechanizmusok Biztonság kérdése probléma természete Védelmi mechanizmusok biztonság elérését lehetővé

Részletesebben

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki. Számítás:. Olvassuk be két pont koordinátáit: (, y) és (2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki. 2. Olvassuk be két darab két dimenziós vektor komponenseit: (a, ay) és (b, by). Határozzuk

Részletesebben

Rendszerprogramozás Linux környezetben

Rendszerprogramozás Linux környezetben Készítette: Petróczy Tibor Rendszerprogramozás Linux környezetben 1 1. Unix shellek és shell scriptek Miért, és mikor: - használtál már UNIX/Linux rendszert - ismered a rendszer alapfilozófiáját - nem

Részletesebben

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek. Linux fájlrendszerek. 4. Laborgyakorlat Előző gyakorlaton, már volt szó a fájlrendszerekről, mikor a mount parancs -t kapcsolójáról volt szó. Linux alatt, az egyes fájlokhoz való hozzáférések miatt, a

Részletesebben

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

Operációs Rendszerek példatár. Utolsó frissítés: 2014. február 10. Operációs Rendszerek példatár Utolsó frissítés: 2014. február 10. A példatár Szegedi Tudományegyetemen oktatott Operációs rendszerek tárgy gyakorlati anyagához illeszkedo feladatok sorát tartalmazza, mely

Részletesebben

Operációs Rendszerek. Windows Parancssor

Operációs Rendszerek. Windows Parancssor Operációs Rendszerek. Windows Parancssor a parancssor a világ legjobb felülete Miért jó a parancssor? Szinte minden beállítást meg lehet oldani Automatizálás parancssorbol egyszerű pl: ürítsen egy könyvtárat

Részletesebben

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István Operátorok Műveletek Egy (vagy több) műveleti jellel írhatók le A műveletet operandusaikkal végzik Operátorok fajtái operandusok száma szerint: egyoperandusú operátorok (pl.:

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

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

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével

Részletesebben

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

Kifejezések. Kozsik Tamás. December 11, 2016

Kifejezések. Kozsik Tamás. December 11, 2016 Kifejezések Kozsik Tamás December 11, 2016 Kifejezések Lexika Szintaktika Szemantika Lexika azonosítók (változó-, metódus-, típus- és csomagnevek) literálok operátorok, pl. + zárójelek: (), [], {},

Részletesebben

3. Gyakorlat Ismerkedés a Java nyelvvel

3. Gyakorlat Ismerkedés a Java nyelvvel 3. Gyakorlat Ismerkedés a Java nyelvvel Parancssori argumentumok Minden Java programnak adhatunk indításkor paraméterek, ezeket a program egy tömbben tárolja. public static void main( String[] args ) Az

Részletesebben

Delphi programozás I.

Delphi programozás I. Delphi programozás I. Konzol alkalmazások készítése Delphiben A Delphi konzol alkalmazása (console application) olyan 32 bites program, amely nem grafikus felületen, hanem egy szöveges konzol ablakban

Részletesebben

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

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 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 Bevezetés Parancsértelmező (bash) Utasítások man Szövegszerkesztők Bash Különféle

Részletesebben

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

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15 Matlab alapok Baran Ágnes Elágazások, függvények Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15 Logikai kifejezések =, ==, = (két mátrixra is alkalmazhatóak, ilyenkor elemenként történik

Részletesebben

Munka állományokkal. mv: áthelyezés (átnevezés) rmdir: üres könyvtár törlése rm: törlés. -r, -R: rekurzív (könyvtár) -r, -R: rekurzív (könyvtár)

Munka állományokkal. mv: áthelyezés (átnevezés) rmdir: üres könyvtár törlése rm: törlés. -r, -R: rekurzív (könyvtár) -r, -R: rekurzív (könyvtár) man!!! Man Munka állományokkal cd: az aktuális könyvtár (.) beállítása (alapesetben a ~ könyvtárra) pwd: aktuális könyvtár kiiratása mkdir: új könyvtár létrehozása cp: másolás -r, -R: rekurzív (könyvtár)

Részletesebben

Alapfogalmak a héj (shell) használatához

Alapfogalmak a héj (shell) használatához Alapfogalmak a héj (shell) használatához 1.Shell programok...1 1.1A héj által végrehajtott parancsok...3 1.2Alias-ok vagy helyettesítő nevek...4 2.A parancsvégrehajtás...4 2.1A környezeti változók...5

Részletesebben

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel

Részletesebben

az Excel for Windows programban

az Excel for Windows programban az Excel for Windows táblázatkezelőblázatkezel programban Mit nevezünk nk képletnek? A táblt blázatkezelő programok nagy előnye, hogy meggyorsítj tják és könnyebbé teszik a felhasználó számára a számítási

Részletesebben

Büki András UNIX/Linux héjprogramozás Büki András: UNIX/Linux héjprogramozás Büki András Felelõs kiadó a Kiskapu Kft. ügyvezetõ igazgatója 2002 Kiskapu Kft. 1081 Budapest Népszínház u. 29. Tel: (+36-1)

Részletesebben

3 A C programozási nyelv szintaktikai egységei

3 A C programozási nyelv szintaktikai egységei 3 A C programozási nyelv szintaktikai egységei 3.1 Azonosítók Betűk és számjegyek sorozata, betűvel vagy _ (aláhúzás) karakterrel kell kezdődnie. A nagy- és kisbetűk különbözőek. Az azonosítók tetszőleges

Részletesebben

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 4. gyakorlat PLanG: 2011.10.04. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Fájlok

Részletesebben

Operációs rendszerek gyak.

Operációs rendszerek gyak. Operációs rendszerek gyak. AWK programozás Hirling Dominik Szegedi Tudományegyetem AWK AWK: a pattern scanning and processing language mintaelemző-és feldolgozó nyelv bármilyen szövegből minták alapján

Részletesebben

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

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás A tárgy órái Előadás hetente (St101) csüt. 8:15 Bécsi Tamás C elmélet Ajánlott irodalom Dennis Ritchie: A C programozási nyelv Gyakorlat hetente

Részletesebben

Python bevezető foglalkozás Python bevezető foglalkozás

Python bevezető foglalkozás Python bevezető foglalkozás Python bevezető foglalkozás program, programozás, programnyelvek a Python nyelv és az IDLE környezet változók és adattípusok konzol input és output (input(), print()) vezérlési szerkezetek (if/else, while)

Részletesebben

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } Funkcionális és logikai programozás { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi ` 1 Jelenlét: Követelmények, osztályozás Az első 4 előadáson

Részletesebben

Felvételi tematika INFORMATIKA

Felvételi tematika INFORMATIKA Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponként.

Részletesebben