rilpoint_mw113

Linux:Ciklusok

(Változatok közti eltérés)
Admin (vitalap | szerkesztései)
(Új oldal, tartalma: „=Ciklusok= * Készíts shell scriptet, mely a billentyűzetről bekért szöveget 10-szer írja ki! A program sorszámozza az egyes sorokat! <code lang="bash"> #!/bin/bas…”)
Újabb szerkesztés →

A lap 2010. március 28., 19:09-kori változata

Ciklusok

  • Készíts shell scriptet, mely a billentyűzetről bekért szöveget 10-szer írja ki! A program sorszámozza az egyes sorokat!
#!/bin/bash
echo -n "Add meg a szöveget: "
read SZOVEG
# Kiírjuk 10-szer
I=1
while [ $I -le 10 ] ; do
  echo "$I: $SZOVEG"
  I=`expr $I + 1`
done
  • Készíts shell scriptet, mely a NEVEK változó tartalmát (mely szóközzel elválasztott keresztneveket tartalmaz) egymás utáni sorokban írja ki!
#!/bin/bash
NEVEK="Péter Ilona Béla Pál János"
for NEV in $NEVEK ; do
  echo $NEV
done
  • A cimek.txt fájl e-mail címeket tartalmaz. Készíts shell scriptet, mely az ebben szereplő címekre egy teszt levelet küld!
#!/bin/bash
DATAFILE="cimek.txt"
CIMEK=`cat $DATAFILE`
for CIM in $CIMEK ; do
  echo "Levél küldése $CIM címre"
  echo "Ez teszt levél, kérem törölje." | mail -s "teszt levél" $CIM
done

A cimek.txt fájl tartalma:

test1@freemail.hu
test2@gmail.com
user3@vipmail.hu
  • Készíts shell scriptet, mely 3-tól 20-ig kettes lépésközzel ír ki számokat!
#!/bin/bash
LISTA=`seq 1 2 10`
for I in $LISTA ; do
  echo $I
done
  • Készíts shell scriptet, mely a nap minden órájára kiírja az akkor helyes köszönés formát! (pl reggel 8-kor "jó reggelt kívánok").
#!/bin/bash
for ORA in `seq 0 1 23`; do
  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 órakor]: Jó $N kívánok."
done
  • Készíts shell scriptet, mely sorban feldolgozza az /etc könyvtár .conf kiterjesztésű fájljait! (A feldolgozás jelentse azt, hogy a program kiírja: "Feldolgozás: <fileneve>"!)
#!/bin/bash
for FILE in /etc/*.conf ; do
  echo "Feldolgozás: $FILE"
done
  • Készíts olyan shell scriptet, mely másolatot készít a 10 bájtnál nagyobb méretű .txt fájlokról, hozzáfűzve az aktuális dátumot a fájlnévhez ééééhhnn formában.
#!/bin/bash
# Magyar Péter
 
DATUM=`date +%Y%m%d`
for FILE in ~/*.txt; do
    HOSSZ=`ls -l $FILE | cut -d" " -f5`
    if [ $HOSSZ -ge 10 ] ; then
      F2="$FILE.$DATUM"
      cp $FILE $F2
    fi
done
  • Készíts shell scriptet, mely a billentyűzetről beolvasott sorokat nagybetűssé alakítja! A programot a "vege" szó begépelésével lehessen megállítani!
#!/bin/bash
while read SOR
do
  # A feltétel igazsága esetén lefut a break parancs
  [ $SOR = "vege" ] && break
  echo $SOR | tr [a-z] [A-Z]
done
  • Készíts shell scriptet, mely a NEVEK változó tartalmát (mely szóközzel elválasztott keresztneveket tartalmaz) egymás utáni sorokban írja ki!
#!/bin/bash
NEVEK="Péter Ilona Béla Pál János"
for NEV in $NEVEK ; do
  echo $NEV
done
  • A cimek.txt fájl e-mail címeket tartalmaz. Készíts shell scriptet, mely az ebben szereplő címekre egy teszt levelet küld!
#!/bin/bash
DATAFILE="cimek.txt"
CIMEK=`cat $DATAFILE`
for CIM in $CIMEK ; do
  echo "Levél küldése $CIM címre"
  echo "Ez teszt levél, kérem törölje." | mail -s "teszt levél" $CIM
done
  • Az adatok.txt fájl soronként két, szóközzel elválasztott számot tartalmaz. Készíts shell scriptet, mely az ebben levő számpárokat egy téglalap oldalaiként dolgozza fel, és kiírja azok kerületét és területét!
#!/bin/bash
DATAFILE="adatok.txt"
cat $DATAFILE | while read I ; do
  A=`echo $I | cut -d' ' -f1`
  B=`echo $I | cut -d' ' -f2`
  KER=`expr $A + $A + $B + $B`
  TER=`expr $A \* $B`
  echo "[$A, $B]: K=$KER, T=$TER"
done

Az adatok.txt fájl tartalma:

1 2
3 4
5 6
7 8
9 10
Skin by RIL Partner