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: $KOR." KÖRNYEZETI VÁLTOZÓK #Néhány környezeti változó kiíratása echo $HOME echo $PATH echo $PWD echo $USER echo $TERM echo $SHELL #A HOME könyvtárad elérési útját írja ki #A PATH változó azt tárolja, hogy milyen abszolút #útvonalakon keresse a Linux a futtatható állományokat #Az aktuális könyvtár elérési útvonala #Az aktuális felhasználó #A terminális típusa #A shell típusát tárolja FÁJL REDEZETT KIÍRÁSA # Rendezve kiírja egy fájl első és utolsó n sorát. A fájl és n # paraméter. cat $1 head -$2 sort -n echo cat $1 tail -$2 sort -nr # az utolsó n sor csökkenően van rendezve KÖNYVTÁRBAN BEJEGYZÉSEK SZÁMA # Hány bejegyzés van a könyvtárba echo -n "Bejegyzések száma a $1 könyvtárban: "; ls $1 wc -l FÁJLBAN SZÁM NÖVELÉSE # Egy fájlban tárolt szám értékét növeli eggyel. A fájl paraméter. n=`cat $1` expr $n + 1 > $1 cat $1
CP PARANCS # Felhasználói felületet ad a cp parancshoz echo -n "Adja meg a másolandó fájl nevét: " read FORRASFAJL echo -n "Adja meg a célfájl nevét: " read CELFAJL cp $FORRASFAJL $CELFAJL SZÓ KERESÉSE # Megkeresi azokat a fájlokat a könyvtárban és alkönyvtáraiban, amelyek # tartalmazzák a paraméterben megatt szót. A könyvtár is paraméter. grep -l -r $1 $2 # $1 a szó, $2 a könyvtár KISEBB, NAGYOBB, EGYENLŐ # Beolvasunk egy számot, és eldönti a script, hogy kisebb, nagyobb vagy # egyenlő-e 10-zel. echo -n "Adjon meg egy számot: " read N if [ $N -lt 10 ] echo "$N kisebb 10-nél." if [ $N -eq 10 ] echo "$N egyenlő 10-zel." echo "$N nagyobb 10-nél." FOR # 5-ször írja ki, hogy Hajrá Csepel! for i in {1..5} # vagy for i in `seq 5` echo "Hajrá Csepel!" ne
WHILE # 5-ször kiírja, hogy Hajrá Csepel! i=1 while [ $i -le 5 ] echo "Hajrá Csepel!" i=$(( $i + 1 )) #i=`expr $i + 1` ne UNITL # 5-ször kiíratunk valami szöveget i=1 until [ $i -gt 5 ] # until [! $i -lt 5 ] echo "Hajrá Csepel!" i=`expr $i + 1` ne
FUTTAT case $1 in "-d") date ;; "-w") who ;; "-l") ls ;; *) echo "Rossz paraméterrel futtatod." esac BEJELENTKEZETT FELHASZNÁLÓK # Írjuk ki az éppen bejelentkezett felhasználókat! for i in `who cut -f1 -d" " sort -u` echo "$i bejelentkezett!" ne MENÜRENDSZER # Menürendszer készítése until ciklussal until clear echo "Válasszon az alábbi menüpontok közül!" echo echo "1. Másolás" echo "2. For ciklus példa" echo "3. While ciklus példa" echo "4. Until ciklus példa" echo "0. Kilépés" echo echo -n "Adja meg a megfelelő számot: " read szam [ $szam -eq 0 ] case $szam in 1)./masol.sh ;; 2)./hajra_for.sh ;; 3)./hajra_while.sh ;; 4)./hajra_until.sh ;; *) echo "Ejnye-bejnye, rossz menüpontot adtál meg." esac sleep 3 ne echo "Örültem, hogy engem választott!"
SZÁM FAKTORIÁLISA # Kiírja egy szám faktoriálisát. A szám paraméter. 0!=1 i=$1 faktorialis=1 while [ $i -gt 0 ] faktorialis=`expr $faktorialis \* $i` i=`expr $i - 1` ne echo "A $1 szám faktoriálisa: $faktorialis." SZÁMJEGYEK ÖSSZEADÁSA # Bekér egy számot, majd összeadja a számjegyeket. echo -n "Írjon be egy számot: " read n sum=0 while [ $n -gt 0 ] modn=`expr $n \% 10` sum=`expr $sum + $modn` n=`expr $n \/ 10` ne echo "A számjegyek összege: $sum." echo -n "Írjon be egy számot: " read n sum=0 while [ $n -gt 0 ] sum=`expr $sum + \( $n \% 10 \)` n=`expr $n \/ 10` ne echo "A számjegyek összege: $sum." E-MAIL CÍM cat $1 sed 's/[ _]kukac[ _]/@/g; s/[ _]nospam[ _]/@/g; s/[ _]at[ _]/@/g; s/[ _]pont[ _]/./g; s/[ _]t[ _]/./g;' PARAMÉTER #echo $1 $2 $3 echo "Paraméterek száma:" $# echo "Összes paraméter:" $@
ÖSSZEADÁS # Összeadja a paraméterként megkapott számokat, max. 10 számot tudjon # összeadni, legyen -help kapcsoló, ami kiírja, hogy mit csinál a # program. sum= if [ $# -le 10 ] if [ $1!= "-help" ] for i in `seq $#` sum=`expr $sum + ${!i}` ne echo $sum #i=8 #echo "az $i-ik paraméter ${!i}" echo "A program összeadja a paraméterül megatt számokat." echo "Max. 10 paraméter adható meg." GREP Kérdezzük le a rendszer összes felhasználójának adatait a getent passwd parancs segítségével, és tegyük bele a felhasznalok.txt állományba. Hány felhasználóról kapunk információt? Megoldás: getent passwd > felhasznalok.txt; cat felhasznalok.txt wc l Határozzuk meg, hogy hány s betűvel kezdődő felhasználó van bejelentkezve! Megoldás: who grep ^s wc l vagy who grep ^s c Írjuk bele a torolt_felhasznalok.txt állományba a rendszerből ideiglenesen törölt felhasználók nevét! Segítség: az ideiglenesen törölt felhasználók a 666-os felhasználó-azonosítót kapják. Megoldás: grep :666: < felhasznalok.txt cut f1 d: > torolt_felhasznalok.txt vagy cat felhasznalok.txt grep :666: cut f1 d: > torolt_felhasznalok.txt