Introduction
- Shell scripting permet d’automatiser des commandes Unix/Linux.
- Les scripts shell se terminent généralement par
.sh
. - Le shebang
#!/bin/bash
en début de script indique l’interpréteur à utiliser.
Variables
- Déclaration:
variable_name=value
- Accès:
$variable_name
ou${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.
Laisser un commentaire