0% ont trouvé ce document utile (0 vote)
27 vues20 pages

Programmation Système (Script Shell) L3 IRT Partie1

Ce document présente un cours sur la programmation système avec des scripts Shell, abordant les concepts fondamentaux tels que la définition d'un script, l'utilisation de variables, et la manière d'exécuter et de rendre un script exécutable. Il explique également les composants d'un script, les permissions d'utilisateur, et les variables spécifiques au shell. Enfin, il traite des tests et de la gestion des constantes dans les scripts.

Transféré par

Mounteizir BELLO
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
27 vues20 pages

Programmation Système (Script Shell) L3 IRT Partie1

Ce document présente un cours sur la programmation système avec des scripts Shell, abordant les concepts fondamentaux tels que la définition d'un script, l'utilisation de variables, et la manière d'exécuter et de rendre un script exécutable. Il explique également les composants d'un script, les permissions d'utilisateur, et les variables spécifiques au shell. Enfin, il traite des tests et de la gestion des constantes dans les scripts.

Transféré par

Mounteizir BELLO
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd

Programmation Système

(Script Shell) L3 IRT

Franck ADJEGAN
Janvier 2025
Ce que vous allez apprendre pendant
le cours
 • Qu’est-ce qu’un script ?
 • Les composants principaux d’un script.
 • Comment utiliser des variables.
 • De quelle manière peut-on effectuer des tests et des prises de
décision.
 • Comment donner des arguments à votre script.
 • Comment permettre à l’utilisateur de rentrer des données qui vont
pouvoir être utilisées par le script.
Qu’est ce qu’un script

 Une série de commandes définies dans un fichier pour l’automatisation


d’une tâche donnée
 Ces commandes sont exécutées les unes après les autres par un
interpréteur (le shell dans notre cas)
 Tout ce qui est réalisable en ligne de commande peut être inclus dans un
script
 Le scripting est une méthode pour l’automatisation de tâches
Cas d’ Utilisation

 maintenance quotidienne d’un système


 sauvegarde hebdomadaire de fichiers vers un serveur
 planification de tâches répétitives et/ou fastidieuses
 extraction de données utiles de fichiers volumineux
Comment Rendre un script
Exécutable
 Pour pouvoir exécuter un fichier de script, il faut définir dessus les droits de
manière à ce que celui-ci devienne exécutable .

 Utilisation de chmod (change mode)


Syntaxe :
chmod a+x nom_fichier

chmod a+x permet de rajouter le droit d’exécution à tous les utilisateurs pour le
fichier nom_fichier
 Exemple :
chmod a+x monscript.sh
Comment Rendre un script
Exécutable (2)
 Les catégories d’utilisateurs
u propriétaire (user)
g groupe (group)
o les autres (others)
a tous (all)

 Les permissions
r (4) : autorisation de lecture
w (2) : autorisation d'écriture
x (1) : autorisation d'exécution.

 Exemple :
chmod a+x monscript.sh
Comment Exécuter un script

 Pour exécuter un script, vous avez le choix de, soit d’utiliser le chemin
relatif , soit d’utiliser le chemin absolu
• Chemin relatif : Il faut être dans le dossier du fichier et faire
./nom_fichier
 Exemple ./monscript.sh

 Chemin absolu : Peut importe là où on se trouve, on précise le chemin


allant de la racine jusqu’au fichier à exécuter
 Exemple : /home/franck/monscript.sh
en supposant que c’est le chemin absolu vers le fichier
ECRIRE UN SCRIPT

 Editeur
On peut utiliser n’importe quel éditeur disponible dans l’environnement
Exemple : gedit, emacs, vi, vim, nano sous Linux ; notepad++ sous windows

 Le Shebang
C’est la première ligne qu’on trouve dans un fichier de script shell
#!/bin/bash
Il commence par un « # » (ce qui correspond la plupart du temps à des
commentaires) puis d’un « ! » et enfin le chemin menant au programme Bash
Shell
ECRIRE UN SCRIPT

 Le Shebang
On y indique le chemin de l’interpréteur qui va lire le script.
Il en existe d’autres. Ci-dessous, quelques exemples :
• #!/bin/sh
• #!/bin/csh
• #!/bin/zsh
• #!/usr/bin/python
Les Commentaires

 Les commentaires permettent de rendre des parties du contenu du fichier de script non
interprétées par l’interpréteur
 Une ligne commentée commence par le caractère #
 On peut aussi commenter la fin d‘une ligne
 Mais il n‘existe aucun moyen natif pour commenter plusieurs lignes à la fois. Mais il
existe des solutions.
 Ainsi, en dehors du shebang, toute ligne commençant par # ne sera pas interprétée

#!/bin/bash
echo "Bonjour tout le monde"
#Ceci est un commentaire
echo "Merci pour l’explication" #Ceci ne sera pas interprété
Les Variables

 Ce sont des espaces de stockage qui possèdent un nom


Il existe deux catégories de variables : Les variables définies par l’utilisateur et les
variables prédéfinies (variables prépositionnées, variables d’environnement, etc.)

 Variables définies par l’utilisateur


Le nom d‘une variable est un identificateur
• Caractères alpha-numériques
• Ne peut commencer par un chiffre
• Peut contenir le caractère sous-tiret (_)
 Le nom d‘une variable est sensible à la casse : une distinction est faite entre majuscule
et minuscule
 Par convention, il est en MAJUSCULE
Les Variables

 Syntaxe de déclaration
NOM_DE_LA_VARIABLE="valeur"
Nota : Il ne faut pas mettre d'espace entre le nom de la variable, le signe = et "

 Syntaxe d’utilisation
Pour utiliser le contenu d’une variable, il faut faire précéder le nom de la variable
par un $

Un exemple illustratif se trouve sur la page suivante


Les Variables

#!/bin/bash
PRENOM= " Franck"
NOM= " ADJEGAN"
echo "Bonjour $PRENOM $NOM et bienvenue au cours de script shell"

#En supposant que le fichier du code ci-dessus se nome script.sh, et qu’on a


déjà défini les droits d’accès appropriés dessus, son exécution se fera comme
suit :
./script.sh
#ce qui donnera comme résultat :
Bonjour Franck ADJEGAN et bienvenue au cours de script shell
Les Variables

 Nota : Dans certains cas, on est obligé d’utiliser les accolades pour entourer le nom
de la variable
#!/bin/bash
PRENOM="Luc"
NOM="SAGBO"
AGE="18"
echo "Bonjour $PRENOM ${NOM}, vous avez ${AGE}ans"

./script.sh
Bonjour Luc SAGBO, vous avez 18ans

Nota : Ici, si on ne mettait pas les accolades, on aurait de problèmes dans l’interprétation de $NOM,
à cause de la virgule qui est collée au nom de la variable. De même on n’aurait pas pu afficher l'âge
avec la chaine ans collée à la variable désignant l'âge.
Les Variables

 Assigner les sorties de commandes à une variable


Il est tout a fait possible d'assigner la sortie standard d'une commande à une variable en la mettant
entre parenthèses
#!/bin/bash
PRENOM="Luc"
NOM="SAGBO"
MACHINE=$(hostname)
echo "Bonjour $PRENOM $NOM et bienvenu sur la machine ${MACHINE}. "

Une autre syntaxe est également possible suivant le script et elle utilise le symbole ` (alt gr + 7) à
la place du $() pour exécuter une commande.
#!/bin/bash
PRENOM="Luc"
NOM="SAGBO"
MACHINE=`hostname`
echo "Bonjour $PRENOM $NOM et bienvenu sur la machine ${MACHINE}."
LES VARIABLES SPÉCIFIQUES :
PRÉPOSITIONNÉES
 Quelques variables spécifiques au shell qui permettent de récupérer des informations sur les
arguments passés ou sur l'exécution en cours.
• $0 indique le nom d'une commande (nom du shell ou du script shell en cours d’exécutionou)
• $# indique le nombre de paramètres positionnels d'une commande (nombre total
d'arguments passés)
• $$ indique le numéro de processus du shell courant (PID : Process ID)
• $? Code qui indique un résultat lié au déroulement de la dernière commande exécutée
• 0 : Pas d'erreur. Autre valeur : cas contraire.
• $* ensemble des paramètres (arguments) d'une commande (sous forme de liste séparée par
le l'IFS)
• $@ ensemble des paramètres (arguments) d'une commande (sous forme de liste séparée par
des espaces)
• $1 à $9 représentent des paramètres positionnels (les arguments passés à une commande ou
à un script).
LES VARIABLES D'ENVIRONNEMENT

 PATH représente les différents chemins où se trouvent les exécutables.


 PS1 affiche la structure du prompt principal, ou celui par défaut.
 HOME contient le répertoire de base de l'utilisateur.
 SHELL indique le shell utilisé par l'utilisateur.
 LANG indique la langue utilisée.
 TEMP contient le chemin où les processus stockent les fichiers temporaires.
 OSTYPE indique le type de système d'exploitation.
 LD_LIBRARY_PATH contient les différents chemins où se trouvent les
bibliothèques.
 USER indique l'utilisateur connecté à la session courante.
 EDITOR indique l'éditeur utilisé par défaut au sein de la session courante.
LES VARIABLES D'ENVIRONNEMENT

 MANPATH contient l'ensemble des répertoires où se situent les fichiers MAN.


 MANPATH indique le nom du fichier contenant l'historique des commandes enregistrées.
 HISTSIZE valeur limitant le nombre de commandes enregistrées dans le fichier historique.
 PWD contient le chemin du répertoire actuel.

Nota : La liste des variables spéciales et celles d’environnement présentées ici n’est que
partielle. Pour connaitre par exemple toutes les variables d’environnement, il suffit de taper la
commande env dans la console.
Vous êtes aussi priés de tester chacune des variables présentées sur les pages 16 à 18 pour
mieux en comprendre l’utilité.
Pour tester une des variable, il suffit de faire
echo $NOM_VARIABLE
LES CONSTANTES : VARIABLES NON
MODIFIABLES
 La notion de constante n’existe pas vraiment en Shell script.
Mais comme une constante n’est qu’une variable non modifiable, il y a la
possibilité d’utiliser le mot clé readonly pour rendre une variable non
modifiable
 Syntaxe : readonly NOM_CONSTANTE="Valeur"
On vient donc de définir une variable comme une constante.
LES TESTS

 La notion de constante n’existe pas vraiment en Shell script.


Mais comme une constante n’est qu’une variable non modifiable, il y a la
possibilité d’utiliser le mot clé readonly pour rendre une variable non
modifiable
 Syntaxe : readonly NOM_CONSTANTE="Valeur"
On vient donc de définir une variable comme une constante.

Vous aimerez peut-être aussi