Sunteți pe pagina 1din 7

Pb 13 Sortarea ascendenta a cinci numere

$ vi pb13.sh – la executie utilizati ./pb13.sh si functioneaza. Nu utilizati comanda sh


#!/bin/bash
# declararea unui vector cu cele cinci numere
declare vector[5]=(4 -1 2 66 10)
# afisare numere
echo "Numerele care se vor sorta sunt:"
for (( i = 0; i <= 4; i++ ))
do
echo ${vector[$i]}
done
# sortare numere
for (( i = 0; i <= 4 ; i++ ))
do
for (( j = $i; j <= 4; j++ ))
do
if [ ${vector[$i]} -gt ${vector[$j]} ]; then
t=${vector[$i]}
vector[$i]=${vector[$j]}
vector[$j]=$t
fi
done
done
# afisarea numerelor sortate
echo -e "\n Numerele in ordine ascendenta sunt:"
for (( i=0; i <= 4; i++ ))
do
echo ${vector[$i]}
done

Pb 14 Calculul mediei unor numere date ca argument in linia de comanda


$ vi pb14.sh
#!/bin/bash
medie=0
suma=0
nr_argumente=$#

# Testam existenta a cel putin doua argumente


if [ $# -lt 2 ] ; then
echo -e "Introduceti cel putin doua argumente\n"
exit 1
fi
# calculul mediei
for i in $*
do
suma=`expr $suma + $i`
done
medie=`expr $suma / $nr_argumente`
echo "Media este $medie"

Pb 15 Script exemplu de utilizare a functiilor in unix


$ vi pb15.sh
# -c clear
# -d dir
# -m mc
# -e vi { editor }
cls()
{
clear
echo "Golire ecran, apasa o tasta . . ."
read
return
}
show_ls()
{
ls
echo "afiseaza fisiere, apasa o tasta . . ."
read
return
}
start_mc()
{
if which mc > /dev/null ; then
mc
echo "Midnight commander, apasa o tasta . . ."
read
else
echo "Eroare: Midnight commander nu este instalat, apasa o tasta . . ."
read
fi
return
}
start_ed()
{
ced=$1
if which $ced > /dev/null ; then
$ced
echo "$ced, apasa o tasta . . ."
read
else
echo "Eroare: $ced nu este instalat sau nu exista, apasa o tasta . . ."
read
fi
return
}
print_help()
{
echo "Utilizare: $0 -c -d -m -v {nume editor}";
echo "unde -c golire ecran";
echo " -d afiseaza fisiere";
echo " -m start midnight commander shell";
echo " -e {editor}, start {editor} ales";
return
}
if [ $# -eq 0 ] ; then
print_help
exit 1
fi
while getopts cdme: opt
do
case "$opt" in
c) cls;;
d) show_ls;;
m) start_mc;;
e) thised="$OPTARG"; start_ed $thised ;;
\?) print_help; exit 1;;
esac
done
Pb 16 Calcularea factorialului unui numar
$ vi pb16.sh
#!/bin/bash
n=0
nr=0
fact=1
echo -n "Introdu numarul : "
read n
nr=$n
while [ $n -ge 1 ]
do
fact=`expr $fact \* $n`
n=`expr $n - 1`
done
echo "Factorialul numarului $nr este $fact"

Pb 17 Utilizarea comenzii tput pentru boldarea unui text introdus de la tastatura


$ vi pb17.sh
#!/bin/bash
echo -n "introdu textul : "
read text
tput bold
echo "$text"

Pb 18 Script pentru afisarea numarului de fisiere din directorul curent


$ vi pb18.sh
#!/bin/bash
FILE="/tmp/fisiercolector.txt"
echo -n "introduceti numele directorului : "
read dname
ls $dname > $FILE
echo "Numarul de fisiere din directorul: $(grep [^*$] $FILE -c)"
#rm -f $FILE
Pb 19 Script pentru determinarea paritatii unui numar
$ vi pb19.sh
#!/bin/bash
echo -n "Introdu numarul : "
read n
r=$(( $n % 2 ))
if [ $r -eq 0 ]
then
echo "$n este par"
else
echo "$n este impar"
fi
Pb 20 Crearea unui meniu
$ vi pb20.sh
#!/bin/bash
while :
do
clear
echo " meniu"
echo "1. Continutul directorului /etc/passwd"
echo "2. Lista utilizatorilor logati"
echo "3. Directorul curent"
echo "4. Exit"
echo -n "introduceti una din optiunile [1 - 4]"
read opt
case $opt in
1) echo " Continutul directorului /etc/passwd ";
more /etc/passwd;;
2) echo " Lista utilizatorilor logati ";
who | more;;
3) echo " Directorul curent este $(pwd)";
echo "Tasteaza enter pentru a continua .";
read enterKey;;
4) echo "La revedere $USER";
exit 1;;
*) echo "$opt este o optiune invalida.";
echo "Tasteaza enter pentru a continua .";
read enterKey;;
esac
done

Pb 21 Exemplu de utilizare a variabilei shell $USER


$ vi pb21.sh
#!/bin/bash
ora=$(date +"%H")
if [ $ora -ge 0 -a $ora -lt 12 ]
then
salut="Buna dimineata, $USER"
elif [ $ora -ge 12 -a $ora -lt 18 ]
then
salut="Buna ziua, $USER"
else
salut="Buna seara, $USER"
fi
echo $salut

Pb 22 script pentru preluarea unui numar si returnarea numarului scris in litere


$ vi pb22.sh
#!/bin/bash
echo -n "Introdu numarul : "
read n
l=$(echo $n | wc -c)
l=$(( $l - 1 ))
echo "Numarul $n in cuvinte : "
for (( i=1; i<=$l; i++ ))
do
cifra=$(echo $n | cut -c $i)
case $cifra in
0) echo -n "zero " ;;
1) echo -n "unu " ;;
2) echo -n "doi " ;;
3) echo -n "trei " ;;
4) echo -n "patru " ;;
5) echo -n "cinci " ;;
6) echo -n "sase" ;;
7) echo -n "sapte " ;;
8) echo -n "opt " ;;
9) echo -n "noua " ;;
esac
done
Pb 23 Calculul numarului de cifre ale numar introdus de la tastatura
$ vi pb23.sh
#!/bin/bash
echo -n "Introdu numarul : "
read n
sd=0
nd=0
on=$n
while [ $n -gt 0 ]
do
sd=$(( $n % 10 ))
n=$(( $n / 10 ))
nd=$(( $nd + 1))
done
echo "Numarul de cifre ale numarului $on este $nd"

S-ar putea să vă placă și