Linux:Elágazások
(Változatok közti eltérés)Admin (vitalap | szerkesztései)
(Új oldal, tartalma: „=Elágazások= * Készíts programot, mely egy futásidőben bekért számról eldönti, hogy nagyobb-e, mint 5! <code lang="bash"> #!/bin/bash echo -n "Add meg a vizsgá…”)
Újabb szerkesztés →
(Új oldal, tartalma: „=Elágazások= * Készíts programot, mely egy futásidőben bekért számról eldönti, hogy nagyobb-e, mint 5! <code lang="bash"> #!/bin/bash echo -n "Add meg a vizsgá…”)
Újabb szerkesztés →
A lap 2010. március 28., 19:09-kori változata
Elágazások
- Készíts programot, mely egy futásidőben bekért számról eldönti, hogy nagyobb-e, mint 5!
#!/bin/bash echo -n "Add meg a vizsgálandó számot!" read SZAM if [ "$SZAM" -gt 5 ] ; then echo "A $SZAM nagyobb, mint 5" else echo "A $SZAM kisebb, mint 5" fi
- Készítsünk olyan programot, amely bekér két számot, és kiírja a nagyobbikat a képernyőre. Ha a két szám egyenlő, azt is kijelzi.
#!/bin/bash # Készítette: Magyar Péter echo -n "Add meg az első számot!" read SZAM1 echo -n "Add meg a második számot!" read SZAM2 if [ "$SZAM1" -gt "$SZAM2" ] ; then echo "A(z) $SZAM1 nagyobb, mint a(z) $SZAM2." else if [ "$SZAM2" -gt "$SZAM1" ] ; then echo "A(z) $SZAM2 nagyobb, mint a(z) $SZAM1." else echo "A két szám egyenlő." fi fi
- Egészítsük ki az előző feladatot azzal, hogy a futás során történt eseményekről részletes naplóbejegyzést készítünk a "~/naplo.log" file-ba oly módon, hogy minden futás önálló tartalmat generáljon, felülírva a korábbi naplózási eredményeket.
#!/bin/bash # Készítette: Magyar Péter echo "Naplózás indul!" > ~/naplo.log echo -n "Kérem az első számot!" read A echo "Az első szám = $A" >> ~/naplo.log echo -n "Kérem a második számot!" read B echo "A második szám = $B" >> ~/naplo.log if [ "$A" -gt "$B" ] ; then echo "A(z) $A nagyobb, mint a(z) $B." echo "A(z) $A nagyobb, mint a(z) $B." >> ~/naplo.log else if [ "$B" -gt "$A" ] ; then echo "A(z) $B nagyobb, mint a(z) $A." echo "A(z) $B nagyobb, mint a(z) $A." >> ~/naplo.log else echo "A két szám egyenlő." echo "A két szám egyenlő." >> ~/naplo.log fi fi echo "Naplózás vége." >> ~/naplo.log
- Módosítsuk a naplózási stratégiát, hogy ugyanabba a file-ba növekményesen naplózódjanak az eredmények. Ekkor a futás elején írjuk bele a napófileba az aktuális dátumot és időt, majd a futási log bejegyzéseket.
#!/bin/bash # Készítette: Magyar Péter date >> ~/naplo.log echo "Naplózás indul!" >> ~/naplo.log echo -n "Kérem az első számot!" read A echo "Az első szám = $A" >> ~/naplo.log echo -n "Kérem a második számot!" read B echo "A második szám = $B" >> ~/naplo.log if [ "$A" -gt "$B" ] ; then echo "A(z) $A nagyobb, mint a(z) $B." echo "A(z) $A nagyobb, mint a(z) $B." >> ~/naplo.log else if [ "$B" -gt "$A" ] ; then echo "A(z) $B nagyobb, mint a(z) $A." echo "A(z) $B nagyobb, mint a(z) $A." >> ~/naplo.log else echo "A két szám egyenlő." echo "A két szám egyenlő." >> ~/naplo.log fi fi echo "Naplózás vége." >> ~/naplo.log echo "-----------------------------------------" >> ~/naplo.log
- Oldjuk meg, hogy a script induláskor ellenőrízze le, hogy a naplófile hossza meghaladja-e a 1 megabyte-ot. Amennyiben igen, úgy a naplófile-ról készítsen másolatot naplo.old néven, majd hozzon létre egy üres naplófilet, és folytassa a futást.
#!/bin/bash # Készítette: Magyar Péter & Kis Balázs MERET=`ls -l ~/naplo.log | cut -d" " -f5` if [ "$MERET" -gt 1024 ] ; then mv ~/naplo.log ~/naplo.old fi date >> ~/naplo.log echo "Naplózás indul!" >> ~/naplo.log echo -n "Kérem az első számot!" read A echo "Az első szám = $A" >> ~/naplo.log echo -n "Kérem a második számot!" read B echo "A második szám = $B" >> ~/naplo.log if [ "$A" -gt "$B" ] ; then echo "A(z) $A nagyobb, mint a(z) $B." echo "A(z) $A nagyobb, mint a(z) $B." >> ~/naplo.log else if [ "$B" -gt "$A" ] ; then echo "A(z) $B nagyobb, mint a(z) $A." echo "A(z) $B nagyobb, mint a(z) $A." >> ~/naplo.log else echo "A két szám egyenlő." echo "A két szám egyenlő." >> ~/naplo.log fi fi echo "Naplózás vége." >> ~/naplo.log echo "-----------------------------------------" >> ~/naplo.log
- Készíts programot, mely megjeleníti a ~/testfile fájl tartalmát. Ha a fájl nem létezik, akkor létrehozza azt, és beleírja a programot futtató felhasználó nevét (ezt a shell a $USER változóban teszi elérhetővé).
#!/bin/bash TESTFILE="/tmp/testfile.txt" if [ -f $TESTFILE ]; then echo "A $TESTFILE már létezik, a tartalma a következő:" cat $TESTFILE else echo "$TESTFILE létrehozása." echo $USER >$TESTFILE fi
- Készíts programot, mely bekéri egy hét napjának sorszámát, és kiírja az ahhoz tartozó nap nevét!
#!/bin/bash echo -n "Nap sorszáma: " read N case $N in 1) echo "Hétfo" ;; 2) echo "Kedd" ;; 3) echo "Szerda" ;; 4) echo "Csütörtök" ;; 5) echo "Péntek" ;; 6) echo "Szombat" ;; 7) echo "Vasárnap" ;; *) echo "Nincs ilyen nap." ;; esac
- Készíts programot, mely bekéri egy téglalap oldalainak nagyságát, és kiírja annak területét. A programnak ellenőriznie kell, hogy a megadott oldal hosszak nagyobbak-e 0-nál.
#!/bin/bash echo -n "A oldal: " read A echo -n "B oldal: " read B # Ha A és B is pozitív egész if [ "$A" -gt 0 -a "$B" -gt 0 ] then echo "Terület: " ` expr $A \* $B ` "." else echo "Érvénytelen adatok" fi
- Készíts programot, mely ellenőrzi, hogy azt a root felhasználó futtatja-e, ha nem, akkor adjon hibaüzenetet!
#!/bin/bash if [ $USER != "root" ] ; then echo "Ön nem rendszergazda." exit fi echo "Ön rendszergazda."
- Készíts programot, mely az aktuális idő alapján kiírja, hogy mi a napszaknak megfelelően köszönés!
#!/bin/bash ORA=`date '+%H'` N="ejszakat" if [ $ORA -ge 5 -a $ORA -le 8 ] ; then N="reggelt" fi if [ $ORA -ge 9 -a $ORA -le 18 ] ; then N="napot" fi if [ $ORA -ge 18 -a $ORA -le 22 ] ; then N="estet" fi echo "[$ORA óra van]: Jó $N kívánok."
- Készíts programot, mely bekéri egy felhasználó login nevét, és a /etc/passwd file-ból kikeresi annak teljes nevét! A program ellenőrizze, hogy a felhasználó valóban adott-e keresendő nevet, és adjon értelmes választ akkor is, ha a keresett felhasználó nincs a rendszerben!
#!/bin/bash echo -n "Login név: " read NAME if [ -z "$NAME" ] ; then echo "Meg kell adnia a nevet." exit fi FULLNAME=`cat /etc/passwd | grep ^$NAME: | cut -d: -f5` if [ ! -z "$FULLNAME" ] ; then echo "Teljes név: $FULLNAME" else echo "Nincs $NAME felhasználó a rendszerben." fi
Hibakezelés
- Készíts programot, mely létrehozza a /tmp/testDir nevű könyvtárat! Az esetleges hibaüzenetek ne jelenjenek meg, de ha a könyvtár létrehozása sikertelen, akkor írjunk ki saját hibaüzenetet!
#!/bin/bash # A hibákat átirányítjuk a /dev/null-ba mkdir /etc/alma 2>/dev/null # Az ERR változóba kerül a parancs által adott visszatérési érték ERR=$? if [ $ERR -ne 0 ] ; then echo "Hiba a könyvtár létrehozásakor: $ERR" fi