Software">
[Go to site: main page, start]

0% ont trouvé ce document utile (0 vote)
16 vues32 pages

Introduction aux Scripts Shell et Conditions

Un script shell est un fichier texte contenant des instructions exécutées par un interpréteur de commandes, visant à automatiser des tâches. Bien que pratiques pour des commandes simples, les scripts shell ont des limitations pour les calculs complexes et ne sont pas recommandés pour des applications scientifiques. La création d'un script implique d'utiliser un éditeur de texte, de le rendre exécutable, puis de l'exécuter via la ligne de commande.

Transféré par

ayoub
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
16 vues32 pages

Introduction aux Scripts Shell et Conditions

Un script shell est un fichier texte contenant des instructions exécutées par un interpréteur de commandes, visant à automatiser des tâches. Bien que pratiques pour des commandes simples, les scripts shell ont des limitations pour les calculs complexes et ne sont pas recommandés pour des applications scientifiques. La création d'un script implique d'utiliser un éditeur de texte, de le rendre exécutable, puis de l'exécuter via la ligne de commande.

Transféré par

ayoub
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Ecriture des Scripts Shell

153
Définition d'un script shell


Un script shell est un fichier texte qui contient des instructions exécutées de manière séquentielle par un
interpréteur de commandes.


L'objectif principal de la création de scripts shell est d'automatiser l'exécution de diverses tâches,


minimisant ainsi l'intervention humaine nécessaire.


Un script shell débute idéalement par une ligne spécifique appelée "shebang", qui spécifie le chemin absolu
vers l'interpréteur utilisé.


La forme standard de cette ligne est la suivante :


#!/bin/bash

154
Limitations de l'écriture de scripts shell


- L'écriture de scripts shell est idéale pour exécuter des commandes shell avec des arguments et des options (scripts d'enveloppe).


- Cependant, les scripts shell présentent des limitations significatives :


- Limités nativement aux calculs entiers.


- Non optimisés pour les calculs complexes.


- Syntaxe peu intuitive et parfois peu pratique.


- ...


Pour toutes ces raisons, il est déconseillé d'utiliser des scripts shell pour des calculs scientifiques. Il est préférable d'opter pour un
langage de script avancé comme Python ou Julia.

155
Comment Créer un script shell ?

1)- Outil nécessaire : un éditeur de texte .

2)- Une fois le contenu du script édité, rendez-le exécutable avec la commande
suivante :

chmod u+x <votre_script>

3)- Pour lancer votre script, utilisez la commande :

./<votre_script>

156
Exercices

- Écrivons notre premier script shell appelé “[Link]” :

- Lancez nano pour éditer le contenu :

gedit [Link]

- Ajoutez le contenu suivant :

#!/bin/bash

echo 'Hello World!'

- Quittez nano en tapant `CTRL + X` puis appuyez sur `Y` pour enregistrer les modifications.

- Rendez le script exécutable :

chmod u+x [Link]

- Exécutez le script :

./[Link]

157
Variables

- Affectation d'une valeur à une variable :


- Syntaxe :
<nom_variable>=<valeur>
- Exemples :
myvar1='exemple d'une valeur chaîne'
myvar2="un autre exemple"
myvar3=123
- Utilisation de la valeur d'une variable :
- Il est nécessaire d'ajouter le signe `$` au début du nom de la variable.
- Exemples :
echo $myvar1
echo "Le nombre est $myvar3"
Exemple :
#!/bin/bash
nom="douaa"
echo "Bonjour, $nom"
158
La commande "if" (1/2)

- Syntaxe :

if [ <condition> ]
then
<commandes_si_condition_vraie>
else
<commandes_si_condition_fausse>
fi

- La condition est une expression qui s'évalue à vrai ou faux (booléen).

159
La commande "if" (2/2)
Exemple :
Le code suivant :
myvar=3
# "greater than"
if [ $myvar -gt 2 ]
then
echo "variable greater than 2"
fi
produira l'affichage de la phrase “variable greater than 2”.

Exercice :
Essayez l'exemple précédent dans votre shell. Répétez l'exercice avec `myvar=2` pour vérifier ce qui se passe si la condition n'est pas
remplie :
myvar=2
if [ $myvar -gt 2 ]
then
echo "variable greater than 2"
fi
Dans ce cas, aucune phrase ne sera affichée car la condition n'est pas satisfaite.
QQ vous proposez? 160
if [ $myvar -gt 2 ]

then

echo "La variable est supérieure à 2"

else

echo "La variable n'est pas supérieure à 2"

fi

161
Commandes "if" imbriquées (nested)

- Syntaxe :

if [ <condition> ]
then
<commandes_si_condition_vraie>
elif [ <condition> ]
then
<commandes_si_condition_elif_vraie>
else
<commandes_si_condition_elif_fausse>
fi

- La commande “elif” peut être comprise comme “else if”. Il peut y avoir autant de “elif” que nécessaire.

162
Commandes "if" imbriquées (nested)

#!/bin/bash

echo "Entrez votre note :"


read note

if [ $note -ge 10 ]
then

echo " Réussi"
else

echo " Échec"
fi

163
Écriture de conditions (1/3)

- Conditions sur les chaînes de caractères :

164
● #!/bin/bash

● echo "Entrez le mot de passe :"


● read password

● if [ "$password" = "secret" ]
then
✅ Accès autorisé"

● echo "
else
echo "❌ Mot de passe incorrect"

● fi

165
● #!/bin/bash

● echo "Quel est ton nom ?"


● read nom

● if [ "$nom" != "admin" ]
then
✅ Bonjour $nom"

● echo "
else
echo "❌ Nom réservé"

● fi

166
#!/bin/bash

echo "Entrez votre message :"


read message

if [ -z "$message" ]
then
⚠️ Vous n'avez rien écrit !"
echo "
else
echo "📝 Message reçu : $message"
fi

167
#!/bin/bash

echo "Entrez votre email :"


read email

if [ -n "$email" ]
then
📧 Email enregistré : $email"
echo "
else
echo "⚠️ Email vide !"
fi

168
Tester
#!/bin/bash
# Test différence
if [ "hello" != "world" ]
then
echo "✓ 'hello' != 'world' : VRAI"
fi
# Test chaîne vide
if [ -z "" ]
then
echo "✓ Chaîne vide : VRAI"
fi
# Test chaîne non vide
if [ -n "texte" ]
then
echo "✓ Chaîne non vide : VRAI"
fi
169
Écriture de conditions (2/3)

- Conditions sur les nombres :

170
Écriture de conditions (3/3)

Conditions sur les fichiers :

N'oubliez pas que Linux considère (presque) tout comme un fichier


Ainsi, un répertoire est perçu comme un type particulier de fichier.

171
Conditions complexes

- Opérateurs logiques:
- `||` → logique "ou"
- `&&` → logique "et"

- Syntaxe :
En shell:
[<condition1>] || [<condition2>]
[<condition1>] && [<condition2>]

172
Maitrise de If online
Exemples de lignes de commandes avec des instructions If
1. Vérifier si une variable est supérieure à 2** :
myvar=3
if [ $myvar -gt 2 ]; then
echo "La variable est supérieure à 2"
fi
2. Vérifier si une variable est égale à 5 :
myvar=5
if [ $myvar -eq 5 ]; then
echo "La variable est égale à 5"
fi
3. Utiliser une condition else** :
myvar=2
if [ $myvar -gt 2 ]; then
echo "La variable est supérieure à 2"
else
echo "La variable n'est pas supérieure à 2"
fi

173
Maitrise de If online

4. Utiliser elif pour plusieurs conditions** :


myvar=3
if [ $myvar -gt 5 ]; then
echo "La variable est supérieure à 5"
elif [ $myvar -eq 5 ]; then
echo "La variable est égale à 5"
else
echo "La variable est inférieure à 5"
fi
5. Vérifier si une chaîne de caractères est vide :
mystring=""
if [ -z "$mystring" ]; then
echo "La chaîne est vide"
else
echo "La chaîne n'est pas vide"
fi

174
Maitrise de If online

6. Vérifier si un fichier existe:


filename="[Link]"
if [ -e "$filename" ]; then
echo "Le fichier $filename existe"
else
echo "Le fichier $filename n'existe pas"
fi
7. Vérifier si une chaîne de caractères est identique à une autre:
str1="Hello"
str2="World"
if [ "$str1" = "$str2" ]; then
echo "Les chaînes sont identiques"
else
echo "Les chaînes sont différentes"
fi

175
Maitrise de If online
Exemples de lignes de commandes avec des instructions If et Elif
1. Vérifier plusieurs conditions avec `if`, `elif`, et `else`
myvar=7
if [ $myvar -gt 10 ]; then
echo "La variable est supérieure à 10"
elif [ $myvar -gt 5 ]; then
echo "La variable est supérieure à 5 mais inférieure ou égale à 10"
else
echo "La variable est inférieure ou égale à 5"
fi

2. Évaluation de l'âge avec des conditions multiples :


age=20
if [ $age -lt 13 ]; then
echo "Vous êtes un enfant"
elif [ $age -lt 20 ]; then
echo "Vous êtes un adolescent"
else
echo "Vous êtes un adulte"
fi
3. Vérifier des notes scolaires :
grade=85
if [ $grade -ge 90 ]; then
echo "A"
elif [ $grade -ge 80 ]; then
echo "B"
elif [ $grade -ge 70 ]; then
echo "C"
elif [ $grade -ge 60 ]; then
echo "D"
else 176
echo "F"
fi
#!/bin/bash
#Demande de saisie de note par l'utilisateur
echo "Veuillez entrer une note :"
read grade
if [ $grade -ge 90 ]; then
echo "A"
elif [ $grade -ge 80 ]; then
echo "B"
elif [ $grade -ge 70 ]; then
echo "C"
elif [ $grade -ge 60 ]; then
echo "D"
else
echo "F"
fi

177
Maitrise de If online
Exemples de lignes de commandes avec des instructions If et Elif
4. Tester la taille d'un fichier :

filename="[Link]"
if [ -e "$filename" ]; then
filesize=$(stat -c%s "$filename")
if [ $filesize -gt 1000 ]; then
echo "Le fichier est grand."
elif [ $filesize -gt 100 ]; then
echo "Le fichier est moyen."
else
echo "Le fichier est petit."
fi
else
echo "Le fichier n'existe pas."
fi

5. Évaluer une température :

temperature=25
if [ $temperature -gt 30 ]; then
echo "Il fait très chaud."
elif [ $temperature -gt 20 ]; then
echo "Il fait agréablement chaud."
elif [ $temperature -gt 10 ]; then
echo "Il fait frais."
else
echo "Il fait froid."
fi
178
Boucle While

- Principe :
Tant qu'une condition donnée est vraie, un bloc de commandes est répété.

- Syntaxe :
while [ <condition> ]
do
<bloc_de_commandes>
done

179
Exemples de lignes de commandes avec des boucles While
1. Afficher les nombres de 1 à 5 :

i=1
while [ $i -le 5 ]; do
echo "Number $i"
i=$((i + 1))
done

2. Affichage des nombres pairs de 2 à 10 :

i=2
while [ $i -le 10 ]; do
echo "Even number: $i"
i=$((i + 2))
done

3. Demander à l'utilisateur d'entrer un mot de passe jusqu'à ce qu'il soit correct :

password="secret"
user_input=""
while [ "$user_input" != "$password" ]; do
read -p "Enter password: " user_input
done
echo "Access granted!"
180
Exemples de lignes de commandes avec des boucles While

4. Affichage des nombres de 5 à 1 en décrémentant :

i=5
while [ $i -ge 1 ]; do
echo "Countdown: $i"
i=$((i - 1))
done

5. Boucle infinie (à utiliser avec précaution) :

while true; do
echo "This will run forever. Press Ctrl+C to stop."
sleep 1
done

181
Boucle For

- Principe :
Un bloc de commandes est répété pour chaque valeur trouvée dans une liste.

- Syntaxe :

for <variable> in <list>


do
<bloc_de_commandes>
done

182
Lignes de commandes avec des boucles For

- Exemples à essayer:

1. Afficher "Hi" suivi du numéro de 1 à 5 :

for i in {1..5}; do echo "Hi, $i"; done

2. Afficher "Welcome" pour les nombres impairs de 1 à 10 :

for ((i=1; i<=10; i+=2)); do echo "Welcome $i times"; done

3. Lister tous les fichiers dans le répertoire courant :

for i in *; do echo "$i"; done

183
Lignes de commandes avec des boucles For

4. Afficher les carrés des nombres de 1 à 5 :

for i in {1..5}; do echo "Square of $i is $((i*i))"; done

5. Itérer sur une liste de noms :

for name in Alice Bob Charlie; do echo "Hello, $name!"; done

6. Compter à rebours de 10 à 1 :

for i in {10..1}; do echo "Countdown: $i"; done

7. Afficher les lettres d'une chaîne de caractères :

for letter in {A..E}; do echo "Letter: $letter"; done

8. Calculer la somme des nombres de 1 à 5 :


sum=0
for i in {1..5}; do sum=$((sum + i)); done
echo "Total sum is $sum" 184

Vous aimerez peut-être aussi