Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
Lucrare de laborator №5
Programare de sistem
Tema: Script-uri shell UNIX
if [ $# -eq 0 ];
then
echo Nici un argument transmis
else
echo Au fost trimise $# argumente:
for x
do
echo $x
done
fi
if [ $# -eq 0 ];
then
echo Nici un argument transmis
else
echo Au fost trimise $# argumente:
for (( i=$#; $i>0; i=$i-1 ))
do
echo "${!i}"
done
fi
Figura 3, prezintă rezultatul execuției script-ului params1.sh, care afișează argumentele în ordine
inversă.
((test $1 -lt $2) && (echo '$1 < $2')) || (echo '$2 < $1')
((test $1 -lt $2) && (echo "$1 < $2")) || (echo "$2 < $1")
if [ $1 -lt $2 ];
then
echo "$1 < $2"
else
echo "$2 < $1"
fi
if [ $# -eq 0 ];
then
echo Buna ziua, `whoami`!
elif [ $# -eq 2 ];
then
echo Buna ziua, $1 $2!
fi
clear
if [ $# -eq 0 ];
then
tree $HOME
elif [ $# -eq 1 ];
then
tree $1
fi
Figura 10 și figura 11, prezintă rezultatul execuției script-ului filestruct.sh.
if [ $# -eq 1 ];
then
if [ -d $1 ];
then
ls -R "$1"
fi
fi
if [ $# -eq 1 ];
then
if [ -e $1 ];
then
if ! [[ -e copie ]];
then
mkdir copie
fi
file=`basename $1`
cp -Rv $1 copie/$file
else
echo "Dosarul indicat nu exista!"
fi
fi
case $month in
1) echo ianuarie;;
2) echo februarie;;
3) echo martie;;
4) echo aprilie;;
5) echo mai;;
6) echo iunie;;
7) echo iulie;;
8) echo august;;
9) echo septembrie;;
10) echo octombrie;;
11) echo noiembrie;;
12) echo decembrie;;
*) echo Nu exista asa luna;;
esac
if [ $# -eq 1 ];
then
ls -l $1 | grep ^d | awk '{print $9}'
fi
if [ $# -eq 1 ];
then
if [ -e $1 ];
then
echo -n 'Doriti o cautare superficiala?(y/n): '
read answer
if [ $answer = y ];
then
dosar=`ls -l $1 | grep ^d | awk '{print $9}' | wc -l`
fisier=`ls -1Up $1 | grep -v / | wc -l`
echo "Dosare: $dosar, Fisiere: $fisier"
elif [ $answer = n ];
then
dosar=`find $1 -type d | wc -l`
fisier=`find $1 -type f | wc -l`
echo "Dosare: $dosar, Fisiere: $fisier"
fi
fi
fi
if [ $# -eq 1 ];
then
if [ -n "$1" ] && [ "$1" -eq "$1" ] 2>/dev/null;
then
let i=1
while [ $i -le $1 ];
do
echo -n "$i "
let "i = $i + 1"
done
echo
fi
fi
if [ $# -eq 1 ];
then
if [ -n "$1" ] && [ "$1" -eq "$1" ] 2>/dev/null;
then
let i=1
until [ $i -gt $1 ];
do
echo -n "$i "
let "i = $i + 1"
done
echo
fi
fi
Figura 20, prezintă rezultatul execuției script-ului siruntil.sh.
let sum=0
if [ $# -eq 1 ];
then
if [ -n "$1" ] && [ "$1" -eq "$1" ] 2>/dev/null;
then
let i=1
until [ $i -gt $1 ];
do
echo -n "$i "
let "sum = $sum + $i"
let "i = $i + 1"
done
echo -n " Media: $(($sum / $1))"
echo
fi
fi
if [ -z $path ];
then
pathSize=`du -sh $HOME | awk '{print $1}'`
echo "$HOME ocupa $pathSize memorie"
echo
du -h --max-depth=1 $HOME | sort -rh | tail -n +2
elif [ -e $path ];
then
pathSize=`du -sh $path | awk '{print $1}'`
echo "$path ocupa $pathSize memorie"
echo
du -h --max-depth=1 $path | sort -rh | tail -n +2
fi
Figura 22, prezintă rezultatul execuției script-ului dirmem.sh. Cazul în care nu se trimite nici un
nume de dosar.
Concluzii
În această lucrare de laborator am avut ca scop familiarizarea cu procedurile de scriere și
rulare a script-urilor shell-urilor Unix. Astfel, am realizat o multitudine de sarcini care sunt realizate
prin script-uri.
În procesul realizării acestei lucrări mi-am aprofundat cunoștințele în scrierea și executarea
script-urilor în Unix. Am înțeles mult mai bine modalitățile de scriere a instrucțiunilor if, while,
until, case. De asemenea, am utilizat informații luate de la utilizator în momentul execuției script-
ului și am efectuat operații matematice, care diferă în comparație cu alte limbaje.