Introduction
- Shell scripting permet d’automatiser des commandes Unix/Linux.
- Les scripts shell se terminent généralement par
.sh. - Le shebang
#!/bin/bashen début de script indique l’interpréteur à utiliser.
Variables
- Déclaration:
variable_name=value - Accès:
$variable_nameou${variable_name}
Exemple:
name="ChatGPT" echo "Hello, $name!"
Commandes
- Exécution de commandes:
command arguments - Exécution de commandes et stockage de la sortie:
output=$(command arguments)
Conditions
- Test simple:
if [ condition ]; then # code fi
- If-else:
if [ condition ]; then # code else # code fi
- If-elif-else:
if [ condition1 ]; then # code elif [ condition2 ]; then # code else # code fi
Opérateurs courants:
- Égalité numérique:
-eq - Non égalité numérique:
-ne - Supérieur:
-gt - Inférieur:
-lt - Égalité de chaîne:
= - Non égalité de chaîne:
!=
Boucles
- for:
for variable in list; do # code done
- while:
while [ condition ]; do # code done
Fonctions
Déclaration:
function_name() { # code }
Appel:
function_name arguments
Paramètres script
$0: Nom du script.$1, $2, ...: Arguments positionnels.$#: Nombre d’arguments.$@: Tous les arguments.$?: Code de sortie de la dernière commande exécutée.
Redirections
- Rediriger la sortie standard:
command > file - Rediriger la sortie d’erreur:
command 2> file - Rediriger la sortie standard et d’erreur:
command &> file
Pipes
- Passer la sortie d’une commande à une autre:
command1 | command2
Arithmétique
- Utiliser la double parenthèse:
result=$((expression))
Exemple:
a=5 b=10 sum=$((a + b))
Conseils
- Toujours utiliser des guillemets doubles autour des variables pour éviter des problèmes avec les espaces:
echo "$variable" - Pour les tests, préférez
[[ ... ]](test avancé) à[ ... ]pour plus de flexibilité et moins d’erreurs.