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



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

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

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.

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

A héj vezérlő szerkezetei I.

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

Szkriptnyelvek. 1. UNIX shell

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.

BASH SCRIPT SHELL JEGYZETEK

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

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

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

1. Alapok. #!/bin/bash

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

6. BASH programozás I.

A sed folyamszerkesztő

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


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

A sed folyamszerkesztő

Pere László Linux: felhasználói ismeretek I. Az alapok

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

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

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések 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

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

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

chmod umask chown, chgrp

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

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)

Operációs rendszerek gyak.

Operációs rendszerek 1.

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

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

Operációs rendszerek MINB240/PMTRTNB230H

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

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

A legfontosabb DOS parancsok

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

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

Operációs rendszerek. 2. gyakorlat. Munka állományokkal UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Programozás(A szakirány) II. beadandó feladat Farkas András HP6S15 1. csoport Veszprémi Anna / Hudoba Péter

1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket.

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

Felvételi tematika INFORMATIKA

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

Az importálás folyamata Felhasználói dokumentáció verzió 2.1.

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

Programozás I. gyakorlat

Vezérlési szerkezetek

Programozási nyelvek Java

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

A C programozási nyelv I. Bevezetés

van neve lehetnek bemeneti paraméterei (argumentumai) lehet visszatérési értéke a függvényt úgy használjuk, hogy meghívjuk

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

Listák, szótárak, fájlok Listák, szótárak, fájlok

Programozási nyelvek Java

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

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

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

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?

Operációs rendszerek 1.

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

Operációs rendszerek I. IIII. gyakorlat

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

A C programozási nyelv I. Bevezetés

Entity Framework alapú adatbáziselérés

1. feladat Készítse el szövegszerkesztővel, majd mentse osztály.txt néven a következő tartalmú szöveges fájlt:

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

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

O er e á r ci c ós ó s R en e d n sz s er e e r k e I. G akorlá l s

Szkriptelési feladat megoldása

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Operációs rendszerek. 2. gyakorlat. Munka állományokkal UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

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

Powershell 2. gyakorlat

Bevezetés a programozásba I.

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

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

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

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

Operációs Rendszerek Gyakorlat Triviális segédfeladatok június PERL Tömbök és hashek Feladat: május 26-i beugró

Elemi alkalmazások fejlesztése I. Olvassunk be egy fájlból egész számokat egy tömbbe. Keressük meg a tömb valamely

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

7. gyakorlat Sorozatok, Fájlkezelés

INFORMATIKA javítókulcs 2016

Konzolalkalmazások gyors tesztelése

Hardver és szoftver követelmények

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

Operációs rendszerek gyakorlat

Technikai információk fejlesztőknek

Programozási nyelvek JAVA EA+GY 1. gyakolat

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

6. A Pascal nyelv utasításai

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.

Átírás:

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, shift. 2. A ${} sztring operátorainak használata 3. A (( )) számításokat elősegítő szerkezet használata 4. a select szerkezet Előkészülethez szükséges anyag: a 6. és 7. előadás segédlete és a felhasznált parancsok kézikönyv lapjai illetve rövid leírásai. A gyakorlat menete: 1.A read parancs...1 2.A while és until szerkezetek állomány végigjárásra...2 3.A case szerkezet és a shift...2 4.Sztring operátorok a ${} szerkezetben...3 5.Számítások a (( )) szerkezettel...3 6.A select szerkezet...3 1. A read parancs Olvassuk át a read parancs kapcsolóit az előadás függelékéből vagy a héj help read segédletéből és végezzük el a következőket: a) Olvassuk be egy változóba az alábbi sorokat (külön-külön): a abc def abc def ghi b) Olvassuk be két változóba ugyanazokat a sorokat. Mit tapasztalunk? c) Írjunk ki készenléti jelet (pl. "Írj be egy sort:") beolvasás előtt a read -el! d) Olvassunk be csak egy karaktert a read-el egy változóba úgy, hogy a read a beolvasás után azonnal térjen vissza a hívó héjba! e) Írjunk programot, amely végigolvas a read-el egy szöveges állományt úgy, hogy az állomány sorai külön-külön fellgozhatóak egy while ciklus belsejében! f) Ellenőrizzük, mennyi a read visszatérítési értéke ha állomány vége jelet ütünk be olvasáskor ( ^D )? 1

2. A while és until szerkezetek állomány végigjárásra Írjunk kis ciklusokat amelyek az alábbiakat valósítják meg: a) Olvassunk be sorokat a terminálról és írjuk vissza a sorok hosszát addig amíg EOF karakter ütünk be. Mósítsuk a programot úgy, hogy addig olvasson sorokat amíg egy kis a betűt ütünk be. Adjunk erre a feladatra 2 megoldást. b) Járjuk végig egy állomány sorait úgy, hogy egy olyan szkriptnek, amelyik while read line #fellgozás típusú fellgozást tartalmaz a standard bemenetére egy szöveges állományt irányítunk. Végigjárás közben írjuk ki: 1.) a sorok számát a sorok elé és a sorokat 2.) a sorok számát és a sorban levő szavak számát a sorok elé c) Egy állomány sorait végigjárva találjuk meg a leghosszabb sort és írjuk ki a sor tartalmát és sorszámát az állományban a while ciklus befejeztével. 3. A case szerkezet és a shift a) Írjunk egy olyan szkriptet amely a case szerkezet segítségével írja ki nekünk, hogy milyen billentyűt ütöttünk be: betűt, számjegyet vagy egyéb karaktert. A program olvasson egy ciklusban egyenként karaktereket a read-el, addig amíg EOF jelet nem kap. b) A lista.txt (letöltés) állományban termékkók és darabszámok vannak valamilyen raktári nyilvántartásból. Készítsünk egy héjprogramot, amely kók szerint szétválogatja 3 állományba a sorokat: az elsőbe azok kerülnek, amelyeknél a kód P-vel kezdődik és kisbetűvel folytatódik valamint azok amelyek a kód Q-val kezdődik, a másodikba azok amelyek P-vel kezdődnek, második betűjük pedig szám, valamint azok amelyek R-el kezdődnek, a harmadikba azok amelyek P-vel kezdődnek és a második betűjük nagy betű. A három állomány neve 1.txt, 2.txt és 3.txt. Mindhárom végére oda kell még "ragasztani" egy sort, amelyben az szerepel, hogy az illető állományban hány sor van van. A program írja ki azt is, ha talál olyan sort, amelyet nem tud osztályozni. 2

c) Teszteljük le a parancssor paramétereit a case struktúrával: milyen kapcsolók vannak rajta? Legyenek pl. -a, -b, -c kapcsolók egy program számára, és a -b kapcsolónak legyen egy kötelező paramétere. Például az alábbi programindításnál: prog.sh -a -b x -c arg1 a program írja ki: a kapcsoló b kapcsoló és argumentuma x c kapcsoló az arg1 az elso kapcsoló nélküli argumentum A kapcsolókat mindig az argumentumok előtt adjuk meg. Használjuk fel a shift parancsot is a tesztelés írásakor. d) Írjuk ki egy while szerkezettel a parancssor minden második paraméterét a shift -et használva. 4. Sztring operátorok a ${} szerkezetben Ismételjük át a sztring operátorokat (7. előadás 5. rész). 1. Írjuk be egy állomány teljes elérési útját egy változóba, pl: file='/home/eva/teszt.txt' Írjuk ki echo paranccsal: -csak az állomány nevét -a könyvtár nevét amelyben található, teljes elérési úttal -az elérési utat alkotó könyvtárak nevét külön-külön -az állománynév kiterjesztését. 2. ( _ren.sh ) Írjunk olyan programot amely átnevez minden.sh típusú állományt.bash típusúvá egy könyvtárban. Az állomány típus karakterláncának leválasztásakor használjuk fel a ${} belsejében alkalmazható karakterlánc operátorokat. A program legyen nagyon biztonságos: nehogy véletlenül is elvesztődjenek az állományok az átnevezés alatt. Általánosítsuk a feladatot, a program nevezzen át bármilyen típusú állományt bármilyen más típusúvá. 5. Számítások a (( )) szerkezettel 1. ( n123.sh ) Írjunk egy olyan szkriptet amelyik a terminálról olvas 2 számot (n1, n2), és utána n1 ciklust végez, mindegyik ciklusban beolvas egy harmadik számot (n3). Ha n3 egyenlő n2-vel hagyjuk abba a ciklust. 2. ( bytesum.sh ) Számoljuk ki egy szkripttel, hogy egy könyvtárban levő állományokban összesen hány byte és kilobyte van. 1 kilobyte-ot 1024 byte-nak számolunk, és a kilobyte-ok számát adjuk meg kerekítéssel. 6. A select szerkezet Tanulmányozzuk a héj select szerkezetét (7. előadás, 2. rész). 1. Írjunk egy szkriptet amelyik végigjárja egy att könyvtár att extenziójú állományait, miután egyet kiválasztott kiírja: 3

Kiválasztott fájl: test/1.txt majd az alábbi kérdéseket teszi fel: Operációs rendszerek I. - UNIX felhasználói ismeretek és héjprogramozás A válasz után elvégzi a műveletet majd a következő fájlra lép. A fájlok végigjárását egy for ciklussal oldjuk meg, a művelet elvégzése után a select-ből break-el lépünk ki. A PS3 változót a "Művelet:" értékre állítjuk. A Törlés letörli a fájlt, a Másolás művelet egy backup nevű könyvtárba viszi a saját könyvtár alá. Az Átnevezés bekér egy nevet és átnevezi a fájlt úgy, hogy az új név ugyanabban a könyvtárban marad. A programot pl. így indítjuk: select_file.sh test txt Működése, a test könyvtárban 3 fájl van: $bash select_file.sh test txt Kiválasztott fájl: test/2.txt Művelet:1 Törlés művelet következik: removed `test/2.txt' Kiválasztott fájl: test/a.txt Művelet:2 Másolás művelet következik: `test/a.txt' -> `backup/a.txt' Kiválasztott fájl: test/b.txt Művelet:3 Átnevezés művelet következik: Új név:c.txt `test/b.txt' -> `test/c.txt' Vége, nincs több fájl $ 4

Az alábbi kód a szükséges select és for szerkezeteket tartalmazza, erre építhetjük a szkriptet: PS3='Művelet:' for f in $lista #...itt előállítjuk a fájl listát... echo #egy üres sor echo Kiválasztott fájl: "$f" #itt a select szerkezet kezdete select op in Törlés Másolás Átnevezés "Nincs művelet" echo $op művelet következik: #a REPLY változóban 1,2,3,4 van case $REPLY in 1) ;; # törlés 2) ;; # másolás 3) ;; # átnevezés 4) break ;; esac #művelet vége, kiugrunk break 5