Sunteți pe pagina 1din 9

SISTEME DE OPERARE

LABORATOR 3

Topicuri:
1. Substituirea
2. Instrucțiuni repetitive
3. Instrucțiunea break
4. Instrucțiunea continue
5. Aplicații
1. Substituirea
În shell se efectuează o înlocuire atunci când se întâlnește o expresie care conține unul sau
mai multe caractere speciale.
Descriere
\\ Backslash
\n Linie nouă
\t Tab orizontal
\v Tab vertical
Exemplu:

Observație! Se folosește opțiunea –e pentru a activa interpretarea și opțiunea –E pentru a


dezactiva interpretarea.
1.1.Substituirea unei comenzi
Substituirea unei comenzi reprezintă mecanismul prin care shell-ul atribuie un anumit set
de comenzi unei variabile.
Forma generală:
`comandă`

Exemple:
#!/bin/bash

DATE=`date`
echo "Date is $DATE"

USERS=`who | wc -l`
echo "Logged in user are $USERS"

UP=`date ; uptime`
echo "Uptime is $UP"

Otilia PETCU
Pagina 1
1.2. Substituirea unei variabile
Substituirea unei variabile permite manipularea valorii unei variabile în funcție de starea
acesteia.
Formă Descriere
${var} Substituie valoarea lui ”var”.
${var:-word} Dacă valoarea lui ”var” este null sau nesetată,
aceasta este înlocuită de ”word”. Valoarea lui
”var” nu se modifică.
${var:=word} Dacă valoarea lui ”var” este null sau nesetată,
aceasta este înlocuită de ”word”.
${var:?message} Dacă valoarea lui ”var” este null sau nesetată,
”message” este afișat ca eroare standard.
Astfel se verifică dacă variabilele sunt setate
corect.
${var:+word} Dacă valoarea lui ”var” este setată, aceasta
este înlocuită de ”word”. Valoarea lui ”var”
nu se modifică.

Exemplu:
#!/bin/bash

unset var
echo "1 - Valoarea lui var este: $var"

echo ${var:-"Hello"}
echo "2 - Valoarea lui var este: $var"

echo ${var:="Hello Linux"}


echo "3 - Valoarea lui var este: $var"

echo ${var:+"Hello friends"}


echo "4 - Valoarea lui var este: $var"

echo ${var:?"Mesaj"}
echo "5 - Valoarea lui var este: $var"

Otilia PETCU
Pagina 2
2. Instrucțiuni repetitive
Instrucțiunile repetitive permit executarea unui set de comenzi în mod repetat.
2.1.Instrucțiunea WHILE
Forma generală:
while [ expresie ]
do
Instrucțiune/intrucțiuni executată/e cât timp expresia este
adevărată
done

Exemplu:
 Să se calculeze suma primelor n numere, folosind instrucțiunea while.
#!/bin/bash

echo -n "Introduceti un numar: "


read number

sum=0
i=1

while [ $i -le $number ]


do
sum=$(($sum+$i))
i=$((i+1))
done

echo "Suma numerelor de la 1 la $number este: $sum"

Otilia PETCU
Pagina 3
2.2.Instrucțiunea UNTIL
Forma generală:
until [ expresie ]
do
Instrucțiune/intrucțiuni executată/e pană când expresia devine
falsă
done

Exemplu:
 Să se calculeze suma primelor n numere, folosind instrucțiunea until.
#!/bin/bash

echo -n "Introduceti un numar: "


read number

sum=0
i=1

until [ $i -gt $number ]


do
sum=$(($sum+$i))
i=$((i+1))
done

echo "Suma numerelor de la 1 la $number este: $sum"

2.3. Instrucțiunea FOR


Forma generală:
for variabilă in var1 var2 ... varN
do
Instrucțiune/intrucțiuni executată/e pentru fiecare var
done

Exemplu:
#!/bin/bash

for i in Emma, Mateo, Leo, Maya


do
echo "Buna $i"
done

Otilia PETCU
Pagina 4
Sintaxa modernă:
for ((condiția de inițializare; condiția de testare;
incrementare/decrementare))
do
Instrucțiune/intrucțiuni
done

Exemplu:
 Să se calculeze suma primelor n numere, folosind instrucțiunea for.

#!/bin/bash

echo -n "Introduceti un numar: "


read number

sum=0

for ((i=1;i<=$number;i++))
do
sum=$(($sum+$i))
done

echo "Suma numerelor de la 1 la $number este: $sum"

Bash v4.0+ suportă și următoarea sintaxă:


for variabilă in {început..sfârșit..incrementare}
do
Instrucțiune/intrucțiuni executată/e
done

Otilia PETCU
Pagina 5
Exemplu:
#!/bin/bash

for i in {1..10..2}
do
echo "$i"
done

2.4. Instrucțiunea SELECT


Instrucțiunea SELECT oferă o modalitate ușoară de a crea un meniu numerotat din care
utilizatorii pot selecta opțiuni.
Forma generală:
select variabliă in var1 var2 var3
do
Instrucțiune/intrucțiuni executată/e pentru ficare var
done

Exemplu:
#!/bin/bash

echo "Ce sistem de operare preferi?"

select os in Ubuntu LinuxMint Windows10 Windows11 Niciunu


do
case $os in
"Ubuntu"|"LinuxMint")
echo "Si eu folosesc $os."
;;
"Windows10" | "Windows11")
echo "De ce nu incerci Linux?"
;;
"Niciunu")
break
;;
*)
echo "Invalid."
;;
esac
done

Otilia PETCU
Pagina 6
3. Instrucțiunea BREAK
Instrucțiunea break reprezintă o instrucțiune de control și este utilizată pentru a termina
execuția unei instrucțiuni repetitive.
Exemplu:
#!/bin/bash

for((i=1;i<=5;i++))
do
if [ $i -eq 3 ]
then
break
fi
echo $i
done

Otilia PETCU
Pagina 7
4. Instrucțiunea CONTINUE
Instrucțiunea continue întrerupe o iterație (dintr-o structură repetitivă), dacă apare o
condiție specificată și continuă cu următoarea iterație.
Exemplu:
#!/bin/bash

for((i=1;i<=5;i++))
do
if [ $i -eq 3 ]
then
continue
fi
echo $i
done

5. Aplicații

5.1. Să se calculeze media unor numere date ca argument în linia de comandă.


5.2. Să se calculeze factorialul unui număr citit de la tastatură.
5.3. Să se sorteze ascendent un vector de 5 numere.
5.4. Să se afișeze toate fișierele obișnuite care încep cu o literă citită de la tastatură.

Otilia PETCU
Pagina 8

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