Linux:Elágazások
(Változatok közti eltéré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á…”) |
a (→Elágazások) |
||
(6 közbeeső változat nincs mutatva) | |||
1. sor: | 1. sor: | ||
=Elágazások= | =Elágazások= | ||
- | + | <kivonat>if, case, &&, ||</kivonat> | |
- | * Készíts programot, mely egy futásidőben bekért számról eldönti, hogy nagyobb-e, mint 5! | + | * Készíts programot, mely egy futásidőben bekért számról eldönti, hogy nagyobb-e, mint 5! <megoldas> |
<code lang="bash"> | <code lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
12. sor: | 12. sor: | ||
fi | fi | ||
</code> | </code> | ||
- | + | </megoldas> | |
- | * 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. | + | * 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. <megoldas> |
- | + | ||
<code lang="bash"> | <code lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
32. sor: | 31. sor: | ||
fi | fi | ||
</code> | </code> | ||
- | + | </megoldas> | |
- | * 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. | + | * 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. <megoldas> |
- | + | ||
<code lang="bash"> | <code lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
58. sor: | 56. sor: | ||
fi | fi | ||
echo "Naplózás vége." >> ~/naplo.log | echo "Naplózás vége." >> ~/naplo.log | ||
- | |||
</code> | </code> | ||
- | + | </megoldas> | |
- | * 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. | + | * 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. <megoldas> |
- | + | ||
<code lang="bash"> | <code lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
88. sor: | 84. sor: | ||
echo "Naplózás vége." >> ~/naplo.log | echo "Naplózás vége." >> ~/naplo.log | ||
echo "-----------------------------------------" >> ~/naplo.log | echo "-----------------------------------------" >> ~/naplo.log | ||
- | |||
</code> | </code> | ||
- | + | </megoldas> | |
- | * Oldjuk meg, hogy a script induláskor | + | * Oldjuk meg, hogy a script induláskor ellenőrizze 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. <megoldas> |
- | + | ||
<code lang="bash"> | <code lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
# Készítette: Magyar Péter & Kis Balázs | # Készítette: Magyar Péter & Kis Balázs | ||
- | |||
MERET=`ls -l ~/naplo.log | cut -d" " -f5` | MERET=`ls -l ~/naplo.log | cut -d" " -f5` | ||
if [ "$MERET" -gt 1024 ] ; then | if [ "$MERET" -gt 1024 ] ; then | ||
123. sor: | 116. sor: | ||
echo "Naplózás vége." >> ~/naplo.log | echo "Naplózás vége." >> ~/naplo.log | ||
echo "-----------------------------------------" >> ~/naplo.log | echo "-----------------------------------------" >> ~/naplo.log | ||
- | |||
</code> | </code> | ||
- | + | </megoldas> | |
- | * 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é). | + | * 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é). <megoldas> |
<code lang="bash"> | <code lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
- | TESTFILE= | + | TESTFILE=~/testfile.txt |
if [ -f $TESTFILE ]; then | if [ -f $TESTFILE ]; then | ||
echo "A $TESTFILE már létezik, a tartalma a következő:" | echo "A $TESTFILE már létezik, a tartalma a következő:" | ||
138. sor: | 130. sor: | ||
fi | fi | ||
</code> | </code> | ||
- | + | </megoldas> | |
- | * Készíts programot, mely bekéri egy hét napjának sorszámát, és kiírja az ahhoz tartozó nap nevét! | + | * Készíts programot, mely bekéri egy hét napjának sorszámát, és kiírja az ahhoz tartozó nap nevét! <megoldas> |
<code lang="bash"> | <code lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
155. sor: | 147. sor: | ||
esac | esac | ||
</code> | </code> | ||
- | + | </megoldas> | |
- | * 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. | + | * 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. <megoldas> |
<code lang="bash"> | <code lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
171. sor: | 163. sor: | ||
fi | fi | ||
</code> | </code> | ||
- | + | </megoldas> | |
- | * Készíts programot, mely ellenőrzi, hogy azt a root felhasználó futtatja-e, ha nem, akkor adjon hibaüzenetet! | + | * Készíts programot, mely ellenőrzi, hogy azt a root felhasználó futtatja-e, ha nem, akkor adjon hibaüzenetet! <megoldas> |
<code lang="bash"> | <code lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
181. sor: | 173. sor: | ||
echo "Ön rendszergazda." | echo "Ön rendszergazda." | ||
</code> | </code> | ||
- | + | * Készíts programot, mely az aktuális idő alapján kiírja, hogy mi a napszaknak megfelelően köszönés! <megoldas> | |
- | * Készíts programot, mely az aktuális idő alapján kiírja, hogy mi a napszaknak megfelelően köszönés! | + | |
<code lang="bash"> | <code lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
198. sor: | 189. sor: | ||
echo "[$ORA óra van]: Jó $N kívánok." | echo "[$ORA óra van]: Jó $N kívánok." | ||
</code> | </code> | ||
- | + | </megoldas> | |
- | * 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! | + | * 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! <megoldas> |
<code lang="bash"> | <code lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
215. sor: | 206. sor: | ||
fi | fi | ||
</code> | </code> | ||
- | + | </megoldas> | |
=== Hibakezelés === | === Hibakezelés === | ||
- | + | <kivonat>$?</kivonat> | |
- | * 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! | + | * 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! <megoldas> |
<code lang="bash"> | <code lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
229. sor: | 220. sor: | ||
fi | fi | ||
</code> | </code> | ||
+ | </megoldas> |
A lap jelenlegi, 2022. május 14., 13:43-kori változata
Elágazások
Kivonat: if, case, &&, ||
- Készíts programot, mely egy futásidőben bekért számról eldönti, hogy nagyobb-e, mint 5!
- 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.
- 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.
- 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.
- Oldjuk meg, hogy a script induláskor ellenőrizze 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.
- 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é).
- Készíts programot, mely bekéri egy hét napjának sorszámát, és kiírja az ahhoz tartozó nap nevét!
- 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.
- Készíts programot, mely ellenőrzi, hogy azt a root felhasználó futtatja-e, ha nem, akkor adjon hibaüzenetet!
- 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!
Hibakezelés
Kivonat: $?
- 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!