Bash Pagina 119
Exerciții recapitulative elementare Bash
Această pagină wiki conține o serie de exerciții pentru a recapitula sintaxa și conceptele esențiale în Bash. Fiecare exercițiu se concentrează pe utilizarea diferitelor structuri de control, cum ar fi if, while, for, și altele. Exercițiile variază de la afișarea numerelor până la identificarea numerelor prime.
1. Afișarea numerelor pare
#!/bin/bash
for ((i=1; i<=20; i++)); do
if ((i % 2 == 0)); then
echo "$i"
fi
done
2. Afișarea numerelor impare
#!/bin/bash
for ((i=1; i<=20; i++)); do
if ((i % 2 != 0)); then
echo "$i"
fi
done
3. Afișarea numerelor prime
#!/bin/bash
for ((num=2; num<=100; num++)); do
is_prime=1
for ((i=2; i*i<=num; i++)); do
if ((num % i == 0)); then
is_prime=0
break
fi
done
if ((is_prime)); then
echo "$num"
fi
done
4. Afișarea factorialului unui număr
#!/bin/bash read -p "Introduceți un număr: " n factorial=1 for ((i=1; i<=n; i++)); do factorial=$((factorial * i)) done echo "Factorialul lui $n este $factorial"
5. Afișarea tabloului de înmulțire
#!/bin/bash
for ((i=1; i<=10; i++)); do
for ((j=1; j<=10; j++)); do
echo -n "$((i * j)) "
done
echo
done
6. Afișarea numerelor Fibonacci
#!/bin/bash a=0 b=1 echo "Numerele Fibonacci:" for ((i=0; i<10; i++)); do echo "$a" fn=$((a + b)) a=$b b=$fn done
7. Verificarea dacă un număr este par sau impar
#!/bin/bash read -p "Introduceți un număr: " num if ((num % 2 == 0)); then echo "$num este par." else echo "$num este impar." fi
8. Afișarea numerelor de la 1 la 50 folosind while
#!/bin/bash i=1 while ((i <= 50)); do echo "$i" ((i++)) done
9. Numărarea vocale în șir
#!/bin/bash
read -p "Introduceți un șir: " str
count=0
for ((i=0; i<${#str}; i++)); do
char="${str:i:1}"
if [[ $char =~ [aeiouAEIOU] ]]; then
((count++))
fi
done
echo "Numărul de vocale în șirul dat este: $count"
10. Afișarea zilelor săptămânii
#!/bin/bash
days=("Luni" "Marți" "Miercuri" "Joi" "Vineri" "Sâmbătă" "Duminică")
for day in "${days[@]}"; do
echo "$day"
done
11. Afișarea inversă a unui șir
#!/bin/bash
read -p "Introduceți un șir: " str
rev_str=""
for ((i=${#str}-1; i>=0; i--)); do
rev_str+="${str:i:1}"
done
echo "Șirul inversat este: $rev_str"
12. Verificarea unui număr prim
#!/bin/bash
read -p "Introduceți un număr: " num
is_prime=1
if ((num < 2)); then
is_prime=0
else
for ((i=2; i*i<=num; i++)); do
if ((num % i == 0)); then
is_prime=0
break
fi
done
fi
if ((is_prime)); then
echo "$num este prim."
else
echo "$num nu este prim."
fi
13. Afișarea pătratelor numerelor de la 1 la 10
#!/bin/bash for ((i=1; i<=10; i++)); do echo "$i^2 = $((i * i))" done
14. Afișarea tabelului de împărțire
#!/bin/bash
for ((i=1; i<=10; i++)); do
for ((j=1; j<=10; j++)); do
echo -n "$((j / i)) "
done
echo
done
15. Afișarea numerelor de la 1 la 100 care sunt divizibile cu 3
#!/bin/bash
for ((i=1; i<=100; i++)); do
if ((i % 3 == 0)); then
echo "$i"
fi
done
16. Afișarea numerelor de la 1 la 100 care sunt divizibile cu 5
#!/bin/bash
for ((i=1; i<=100; i++)); do
if ((i % 5 == 0)); then
echo "$i"
fi
done
17. Afișarea numerelor de la 1 la 100 care sunt atât pare, cât și divizibile cu 4
#!/bin/bash
for ((i=1; i<=100; i++)); do
if ((i % 2 == 0 && i % 4 == 0)); then
echo "$i"
fi
done
18. Afișarea numerelor de la 1 la 100 care sunt atât impare, cât și divizibile cu 3
#!/bin/bash
for ((i=1; i<=100; i++)); do
if ((i % 2 != 0 && i % 3 == 0)); then
echo "$i"
fi
done
19. Afișarea numărului de linii dintr-un fișier
#!/bin/bash read -p "Introduceți calea către fișier: " file if [[ -f $file ]]; then lines=$(wc -l < "$file") echo "Numărul de linii din fișier este: $lines" else echo "Fișierul nu există." fi
20. Afișarea numerelor de la 1 la 50 folosind until
#!/bin/bash i=1 until ((i > 50)); do echo "$i" ((i++)) done
Aceste exerciții acoperă diferite structuri de control și concepte în Bash, oferind o bază solidă pentru aprofundarea cunoștințelor în scriptingul Bash.