Bash näited 2013

From EIK wiki

Siit lehelt leiad tunnis tetud bash näited

Skript loob kausta

#!/bin/bash
# Loo skript, mis küsib kasutajalt kausta nime
# loob kausta, kui seda veel ei ole
# kui kausta ei saa luua, siis ütleb seda kasutajale
# skript tagastab 0, kui kausta loomine õnnestus
# skript tagastab 1, kui kaust on olemas
# skript tagastab 2, kui kausta loomine ei õnnestunud


read -p "Palun sisesta kausta nimi:" KAUST


if [ -d "$KAUST" ]
then
    echo "Kaust $KAUST on juba olemas"
    exit 1
else
    mkdir "$KAUST" || {
        echo "Kasuta loomine ebaõnnestus"
        exit 2
    }
fi

exit 0

Skript arhiveerib *.txt failid

#!/bin/bash
# Loo skript, mis leiab kasutaja kodukaustast kõik .txt laiendiga failid ja
# teeb neist pakitud varukoopia nimega failid-AASTA-KUU-PÄEV.tar.gz
# fail tuleb luua kasutaja kodukausta
# Näiteks failid-2013-02-12.tar.gz
# Skript tagastab 0, kui kõik õnnestus
# Skript tagastab 1, kui faili loomine ei õnnestunud

FAILINIMI=$HOME/failid-$(date +%Y-%m-%d).tar.gz

NIMEKIRI=$(find $HOME -name '*.txt')

tar cfz $FAILINIMI $NIMEKIRI || exit 1

exit 0


Tunnis näitena lahendatud ülesenne (Robert Vane)

#!/bin/bash

#Robert Vane

export LC_ALL=C
export LANG=C

muutuja=$(less /home/student/Töölaud/robot.itcollege.ee-access.log | cut -d' ' -f1 | sort -u)

for word in $muutuja
do
    ip=$word
    var=$(host $word)
    var1=$?
    
    if [ $var1 -eq 0 ]
    then
        echo $var | cut -d' ' -f5
    fi
    
    if [ $var1 -eq 1 ]
    then
        echo "$ip HOSTI EI LEITUD"
    fi
done

exit 0