Lors de la création de scripts Shell, des problèmes de formatage peuvent survenir si le fichier est transféré entre systèmes d'exploitation différents. Par exemple, un script créé sous Windows peut causer une erreur d'interpréteur sur Linux en raison de sauts de ligne incompatibles. L'utilisation de l'outil dos2unix permet de convertir le format du fichier et de résoudre cette difficulté.
Exemple de script basique
afficher_message() { echo "Bienvenue dans l'exemple de script" }
afficher_message
readonly nom_utilisateur="Alice" echo "Le nom de l'utilisateur est : ${nom_utilisateur}"
Tentative de suppression d'une variable en lecture seule
unset nom_utilisateur echo "La variable vaut maintenant : ${nom_utilisateur}"
</div>Manipluation des chaînes de caractères
--------------------------------------
### Utilisation des guillemets simples
Les chaînes entre guillemets simples préservent le texte brut sans interprétation des variablse ou des séquences d'échappement. Par exemple :
<div>```
texte_brut='Ceci est une chaîne avec $variable non interprétée'
Les guillemets doubles permettent l'expansion des variables et l'utilisation des caractères d'échappement. Voici une illustration :
Longueur et extraction de sous-chaînes
Pour déterminer la longueur d'une chaîne, on utilise l'opérateur ${#nom_variable}. L'extraction d'une sous-chaîne peut se faire avec la syntaxe ${nom_variable:position:longueur}. Par exemple, extraire 5 caractères à partir de li'ndice 3 :
Les tableaux en Shell sont unidimensionnels et indexés à partir de zéro. Voici comment les définir et les utiliser :
Définition et lecture d'éléments
On obtient la taille d'un tableau de la même manière qu'une chaîne :
Les commentaires mono-ligne commencent par le symbole #. Pour les commentaires multi-lignes, on utilise une syntaxe avec redirection :
Lors de l'exécution d'un script, des arguments peuvent être passés. Les variables spéciales incluent :
| Paramètre | Description |
|---|---|
$n |
Le n-ième argument (n commençant à 1) |
$0 |
Le nom du fichier du script |
$# |
Le nombre total d'arguments |
$* |
Tous les arguments concaténés en une seule chaîne |
$@ |
Tous les arguments séparés, utile dans les guillemets doubles |
$$ |
L'identifiant de processus du script |
$? |
Le code de sortie de la dernière commande |
Opérations arithmétiques
Le Shell n'effectue pas directement les calculs mathématiques ; on utilise souvent l'outil expr. Notez l'importance des espaces et des guillemets inversés :
produit=$(expr 4 * 2) echo "Résultat de la multiplication : $produit"
</div>Des opérations comme la soustraction et la division suivent la même logique.
Lecture d'entrées et affichage
------------------------------
La commande `read` capture la saisie utilisateur :
<div>```
echo -n "Entrez votre âge : "
read age_utilisateur
echo "Vous avez $age_utilisateur ans."
Condition if-elif-else
Les boucles for, while et until permettent de répéter des actions :
compteur=0 while (( compteur < 5 )); do echo "Compteur : $compteur" ((compteur++)) done
</div>