0% ont trouvé ce document utile (0 vote)
24 vues29 pages

Shell Programmation 2020

Ce document présente une introduction à la programmation shell avec un accent sur les scripts bash, qui sont des fichiers texte contenant des commandes exécutables par l'interpréteur. Il aborde des concepts clés tels que la définition de variables, les structures de contrôle, l'exécution de scripts, le passage de paramètres, et des exemples pratiques de scripts. Enfin, il décrit les variables d'environnement et les différentes structures de boucle et de condition disponibles en bash.

Transféré par

Papa Ibrahima kamara
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)
24 vues29 pages

Shell Programmation 2020

Ce document présente une introduction à la programmation shell avec un accent sur les scripts bash, qui sont des fichiers texte contenant des commandes exécutables par l'interpréteur. Il aborde des concepts clés tels que la définition de variables, les structures de contrôle, l'exécution de scripts, le passage de paramètres, et des exemples pratiques de scripts. Enfin, il décrit les variables d'environnement et les différentes structures de boucle et de condition disponibles en bash.

Transféré par

Papa Ibrahima kamara
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

Introduction a la

programmation shell
La programmation shell
• Un script bash est un fichier de type texte
contenant une suite de commandes shell,
exécutables par l'interpréteur (ici le
programme /bin/bash), comme une
commande unique.

• Un script peut être lancé en ligne de


commande, mais aussi dans un autre
script.
La programmation shell

• Un script BASH n'est pas seulement


un enchaînement de commandes :

• on peut y définir des variables et


utiliser des structures de contrôle, ce
qui lui confère le statut de langage
de programmation interprété et
complet.
La programmation shell
• Le langage bash gère notamment :
– la gestion des entrées-sorties et leur
redirection
– les variables définies par le
programmeur et des variables systèmes
– le passage de paramètres
– les structures conditionnelles et
itératives
– les fonctions internes
Saisie du script
• On peut toujours utiliser vi, ou un autre
éditeur
• Les lignes commençant par le caractère
dièse (#) sont des commentaires. En insérer
abondamment !
• Le script doit débuter par l'indication de son
interpréteur, à écrire sur la première ligne :
• #!/bin/bash.
En fait si le shell par défaut est bash, cette
ligne est superflue
Execution du script

• Il est indispensable que le fichier


script ait la permission x (soit
exécutable).

• Lui accorder cette permission pour


tous ses utilisateurs avec chmod :

• chmod a+x bonjour


Execution du script
• Pour lancer l'exécution du script,
taper ./bonjour,

le ./ indiquant comme chemin le


répertoire courant.
Ou bien indiquer le chemin absolu à
partir de la racine.
Petit script
#!/bin/bash
# Un petit script mon_script
echo ’Faire cours de linux'
Les variables en bash
• Pour affecter un contenu à une variable,
on utilise la commande suivante
ma_variable=’Aller à Bambey'
• Attention à ne pas mettre d'espace avant
et après le signe '=' !!!
• Pour faire référence au contenu d'une
variable, on la préfixe par le signe '$'
• echo $ma_variable
Aller à Bambey
Exemple de script

#!/bin/bash
# script bonjour
# affiche un salut à l'utilisateur qui l'a lancé
# la variable d'environnement $USER contient le nom de login
echo ---- Bonjour $USER -----
# l'option -n empêche le passage à la ligne
# le ; sert de séparateur des commandes sur la ligne
echo -n "Nous sommes le " ; date
# recherche de $USER en début de ligne dans le fichier passwd
# puis extraction de l'uid au 3ème champ, et affichage
echo "Ton numéro d'utilisateur est " $(grep "^$USER"
/etc/passwd | cut -d: -f3)
Le PATH

Lors de l'utilisation d'une commande


'bash', le shell utilisera la variable
PATH pour
retrouver la commande désirée. Vous
pouvez afficher le contenu de cette
variable par la
commande
echo $PATH
Passage de paramètres à un
script
• On peut passer des arguments à la suite du
nom du script, séparés par des espaces.

• Les valeurs de ces paramètres sont


récupérables dans le script grâce aux
paramètres de position $1, $2 ...

• Le nombre de paramètres est indiqué


par $#
Passage de paramètres à un
script
Les variables passées au script sur la
ligne de commande sont accessibles
dans le script
par les variables réservées $1 pour le
premier argument, $2 pour le
deuxième et ainsi de
suite.
Qques variables réservées
$0 : le nom du script
$* : la liste des paramètres
$# : le nombre de paramètres
$$ : le numéro du processus en cours
d'exécution
$? : la valeur de retour de la dernière
commande
Variables d'environnement à
connaître
• HOME contient le répertoire d'utilisateur
• USER contient le login d'utilisateur
• PWD contient le répertoire courant
• SHELL contient le nom du shell de connexion
• PATH contient la liste des répertoires où se
trouvent les commandes que l'utilisateur peut
exécuter
• HOSTNAME contient le nom de la machine
• PS1 contient les paramètres d'affichage de l'invite
de commande du shell
• PS2 contient le prompt
Exemple2
#!/bin/bash
# appel du script : ./bonjour nom prenom
if [ $# = 2 ]
then
echo "Bonjour $2 $1 et bonne journée !"
else
echo "Syntaxe : $0 nom prenom"
fi
Exemple 3
#!/bin/bash
# un autre script
echo ''mon script est $0''
echo ''il y a eu $# paramètres en
entrée''
echo ''le premier paramètre est $1''
Test if
• Cette boucle sert pour les tests et 'branchement'
Syntaxe : (la partie else ... est optionnelle)
if <condition>
then
<commande1>
<commande2>

else
<commande1>
<commande2>
...
fi
Exemple: Test de l'existence d’un
fichier
#!/bin/bash
if test -f petit_script
then
echo " le fichier existe "
fi
Boucle while

Cette boucle sert pour répéter les traitements un


nombre de fois inconnu. Le test de continuité se fait
au début de la boucle (la boucle continue tant que la
condition est vraie)
Syntaxe
while <condition>
do
<commande1>
<commande2>
...
done
Test case
Cet test permet de tester plusieurs valeurs
pour une variable
Syntaxe
case <variable> in
valeur1) commande1 ;;
valeur2) commande2 ;;
valeur3) commande3 ;;
...
esac
Boucles for

Cette boucle sert pour répéter les traitements


un nombre de fois connu.
Syntaxe
for <variable> in <liste>
do
commande1
commande2
commande3
...
done
Exemple : Affichage des jours de la
semaine
for jour in lundi mardi mercredi jeudi
vendredi samedi dimanche
do
echo $jour
done
Les paramètres d'entrée d'un
script
La lecture d'une valeur peut se faire
par le passage de paramètres sur la
ligne de
commande (c.f. précédemment
l'utilisation des variables $1, $2 etc ...)
ou en lisant une
entrée depuis le script avec la
commande read
Exemple : Lecture du nom d'une personne
dans la variable 'nom' et affichage de son

#!/bin/bash
echo 'Entrez votre nom'
read nom
Echo “Vous vous appelez $nom”
Calculs
Il est possible de comparer des nombres avec
la commande test vue précédemment en
utilisant les options suivantes :
-lt <
-gt >
-le <=
-ge >=
-eq =
-ne !=
Exemple: Test du nombre de
paramètres d'entrée
#!/bin/bash
if [ $# -eq 0 ]
then
echo " Vous n'avez entré aucun
paramètre"
fi
Exemple: traiter une réponse avec la
commande 'case' vue précédemment

#!/bin/sh
echo ''entrez votre choix''
read choix
case $choix in
1) echo " menu un ";;
2) echo " menu deux ";;
3)echo " menu trois ";
esac
Liens TD
• [Link]
shell/

Vous aimerez peut-être aussi