Introducere în Bash Scripting
Alex Scriven
Data Scientist
O instrucțiune IF de bază în Bash are următoarea structură:
if [ CONDITION ]; then# SOME CODEelse # SOME OTHER CODEfi
Două sfaturi:
];O comparație simplă de șiruri într-o instrucțiune IF:
x="Queen"if [ $x == "King" ]; thenecho "$x is a King!"else echo "$x is not a King!" fi
Queen is not a King!
Se poate folosi și != pentru 'diferit de'
Instrucțiunile IF aritmetice pot folosi structura cu paranteze duble:
x=10if (($x > 5)); then echo "$x is more than 5!" fi
10 is more than 5!
Instrucțiunile IF aritmetice pot folosi și paranteze pătrate cu flag-uri aritmetice în loc de (>, <, =, != etc.):
-eq pentru 'egal cu'-ne pentru 'diferit de'-lt pentru 'mai mic decât'-le pentru 'mai mic sau egal cu'-gt pentru 'mai mare decât'-ge pentru 'mai mare sau egal cu'Recreăm ultimul exemplu folosind notația cu paranteze pătrate:
x=10
if [ $x -gt 5 ]; then
echo "$x is more than 5!"
fi
10 is more than 5!
Bash include și diverse flag-uri legate de fișiere:
-e dacă fișierul există-s dacă fișierul există și are dimensiunea mai mare decât zero-r dacă fișierul există și este lizibil-w dacă fișierul există și este editabilȘi multe altele:
Pentru a combina condiții (AND) sau a utiliza OR în Bash, se folosesc simbolurile:
&& pentru AND|| pentru ORÎn Bash se pot înlănțui condiții astfel:
x=10
if [ $x -gt 5 ] && [ $x -lt 11 ]; then
echo "$x is more than 5 and less than 11!"
fi
Sau se poate folosi notația cu paranteze duble:
x=10
if [[ $x -gt 5 && $x -lt 11 ]]; then
echo "$x is more than 5 and less than 11!"
fi
Se pot folosi și programe din linia de comandă direct în condiție, eliminând parantezele pătrate.
De exemplu, dacă fișierul words.txt conține 'Hello World!':
if grep -q Hello words.txt; then
echo "Hello is inside!"
fi
Hello is inside!
Se poate utiliza și un subshell în condiție.
Rescriem exemplul anterior, care produce același rezultat.
if $(grep -q Hello words.txt); then
echo "Hello is inside!"
fi
Hello is inside!
Introducere în Bash Scripting