$ 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"