Programmation Shell Script

21

Transcript of Programmation Shell Script

Page 1: Programmation Shell Script

Programmation Shell Script

Présenter par : NOUR, MESSEL

Université Djilali Liabes de Sidi Bel Abbès

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 2: Programmation Shell Script

Un script Bash est un �chier de type texte contenant une suitede commandes SHELL, exécutable par l'interpréteur (parexemple /bin/bash),comme une commande unique. Un scriptpeut etre lancé en ligne de commande (Terminal), commedans un autre script.

Il s'agit pas uniquement d'un simple enchainement decommande : on peut dé�nir des variables et utiliser desstructures de controle, ce qui lui confère le statut de langagede programmation interprété et complet.

Le langage Bash gère notamment :

Les entrées-sorties et leur redirectionLes variables (système, environnement et usager)Le passage de paramètresLes structures conditionnelles et itérativesLes fonctions internes

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 3: Programmation Shell Script

Alors ?

Comment crèer, exècuter un script SHELL ?

Quelle est la syntaxe génerale de la programmation SHELL ?

Pourqoui on doit avoir à programmer en SHELL, malgrèl'existance d'autres languages (C, Java, Python...) ?

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 4: Programmation Shell Script

Le script débute généralement par l'indication de soninterpréteur écrite sur la première ligneLes lignes commençant par le caractère # sont descommentaires

figures/code_01.png

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 5: Programmation Shell Script

Il est indispensable que le �chier script ait la permission x (soitexécutable) : chmod u+x bonjour

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

./ indiquant le chemain, ici le répertoire courant. Ou bienindiquer le chemain absolu à partir de la racine. Ceci dans lecas où le répertoire contenant le script n'est pas inclus dans lePATH

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 6: Programmation Shell Script

Exécution en mode "trace" (-x) et en mode "verbose" (-v) : sh-x ./bonjour pour aider à la mise au point d'un script, on peutinsérer des lignes temporaires.

echo $var : pour a�cher la valeur de la variable

exit 1 : pour forcer l'ârret du script à cet endroit

On peut passer des arguments à la suite du nom du script,séparés par des espaces. Les valeurs de ces paramètres sontrécupérables dans le script grâce aux paramétres de position$1, $2, ... mais , contrairement aux langages deprogrammation classiques, ils ne peuvent pas être modi�és.

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 7: Programmation Shell Script

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 8: Programmation Shell Script

Ce sont les voies de communication entre le programme Bash et laconsole :

echo : a�che son argument texte entre guillement sur la sortiestandard. La validation d'une commande echo provoque unsaut de ligne.

On peut insérer les caractères spéciaux habituels, qui serontinterprétés seulement si l'option -e suit echo

\n : saut ligne\b : retourn arrière\t : tabulation\a : alarme\c : �n sans saut de ligne

echo -e "Bonjour \n a toutes \n et a tous"

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 9: Programmation Shell Script

read : permet l'a�ectation directe par lecture de la valeur, saisiesur l'entrée standard au clavier

read var1 var2 ... : attend la saisie au clavier d'une liste de valeurspour les a�ecter, après la validation globale, respectivementaux variables var1, var2, ...

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 10: Programmation Shell Script

Syntaxe : variable=valeur

Le signe "=" NE DOIT PAS etre entourné d'espace(s)

On peut initialiser une variable à une chaine vide : chaineVide=

Si valeur est une chaine avec des espaces ou des caractèresspéciax, l'entourner de " " ou de ' '

Le caractére \permet de masquer le sens d'un caractère spécialcomme " ou ' faire précéder le nom de la variable du signe$pour faire référence à sa valeur

Pour a�cher toutes les variables : set

Pour empêcher la modi�cation d'une variable : readonly pi=3.14

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 11: Programmation Shell Script

Toute variable est dé�nie dans un Shell. Pour qu'elle devienneglobale elle doit etre exportée par la commande export

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 12: Programmation Shell Script

La liste des variables d'environnement est accessible par lacommande : env, les plus utiles sont $HOME, $PATH, $USER,$PS1, $SHELL, $ENV, $PWD, ...

La commande echo permet d'obtenir la valeur d'une tellevariable : echo $USER

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 13: Programmation Shell Script

Elles sont gérés par le système et s'avèrent très utiles dans lesscripts. Bien entendu, elles ne sont accessibles qu'en lecture

$ ? : C'est la valeur de sortie de la dernière commande

$ 0 : Cette variable contient le nom du script $ 1 à $ 9 : Lesparamètres passés à l'appel du script

$ ∗ : La liste des paramètres à partir de $1

$ $ : Le PID du processus courant

$ ! : Le PID du processus �ls

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 14: Programmation Shell Script

Attention : si then est placé sur la 1ère ligne, séparer avec ;if commande ; then ... �

Exemple : On teste la présence d'une ligne commençant par polodans /etc/passwd

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 15: Programmation Shell Script

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 16: Programmation Shell Script

Exemple : Supposons que le script doit réagir di�éremment selonla valeur de $USER

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 17: Programmation Shell Script

Exemple : Recopier les �chiers personnels de root dans /tmp

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 18: Programmation Shell Script

La répétition se poursuit TANT QUE la dernière commande de laliste est vraie

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 19: Programmation Shell Script

Sont des suites des instructions (soit fonctions/procédures) :

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 20: Programmation Shell Script

Projet

Fedora Post Installation : Bash script qui permet de faciliterl'installation des programmes sous Fedora, et appliquer descon�gurations sur le système.Lien : https ://github.com/boubakr92/fedora-post-installation/Info : Des contributeurs... BIENVENUE :)

Démonstration

Tâches : Programmer des scripts pour resoudre des problemes !

Présenter par : NOUR, MESSEL Programmation Shell Script

Page 21: Programmation Shell Script

Merci...Vos Questions

Présenter par : NOUR, MESSEL Programmation Shell Script