Professional Documents
Culture Documents
A. NAANAA
Programmation Shell
Objectifs:
Connatre Bash. Connatre les bases de la programmation du shell. Matriser le principe des scripts shell pour
A. NAANAA
Programmation Shell
Points importants:
Automatiser les tches administratives avec des
scripts shell est indispensable et trs efficace. Une bonne utilisation de Linux est indissociable des scripts Mots cls: $*, $#, $0, $1, $2, $!, $$, $?, ~/.profile, ~/.bashrc, ~/.bash_logout, ~/.inputrc, /bin/bash, /etc/bash_logout, /etc/bashrc, /etc/inputrc, /etc/profile, bash, case, do, done, else, env, esac, export, expr, fi, for, if, PATH, select, set, test, then, unset, while
A. NAANAA
Les variables
Variables spciales du Shell
$0 $1...$9 $* $@ $? $# $$
A. NAANAA
Nom de la procdure Valeur des paramtres de la procdure Chane quivalente $1,...,$9 Liste complte sous la forme "$1",..."$9" Code de retour de la dernire commande excute Nombre de paramtres transmis l'appel Numro de processus Numro dernier processus tournant en arrire-plan 4
$!
Les variables
Affectations La commande permettant d'affecter une valeur une variable utilise l'oprateur '=': var=chane Permet d'affecter la valeur de chane la variable var. Exemple: var=1 var='ceci est un exemple' var="ceci est un autre exemple" var1=$var2 var=$1 var2=`expr $var1 + 1`
Rq: typeset -i x; x=6*10; echo $x;
A. NAANAA
Les variables
Affichage
Pour faire rfrence au contenu d'une variable, on la
Les variables
Le shell utilise des variables pour tenir compte des paramtres de configuration spcifiques des utilisateurs appels variables d'environnement
$HOME: contient le nom du rpertoire par dfaut $MAIL: contient le nom absolu d'un fichier o
courant.
A. NAANAA
A. NAANAA
A. NAANAA
Affichage et Lecture
L'affichage d'une chane de caractre ou d'une variable est effectu par la commande echo
echo "exemple" echo le script shell $0 est rdig par $LOGNAME echo $PWD
A. NAANAA
10
11
A. NAANAA
12
.
A. NAANAA
13
Calculs arithmtiques
$expr $expr $expr $expr $expr $a $a $a $a $a + $b - $b \* $b / $b % $b
Remarque: $expr $a: $b Compare la chane a la chane b et s'arrte ds que les chanes diffrente ou la fin de la chane a, elle renvoie alors le nombre de caractre en commun si les chanes concident jusqu' la fin de a et 0 sinon.
A. NAANAA
14
Rq: Si toutes ces conditions ne sont pas remplies, il est toujours possible de forcer l'excution du script avec la commande bash, sh... $sh mon_script
A. NAANAA
15
A. NAANAA
16
17
18
19
Pour faire le test de lecture dune valeur jusqu ce que lutilisateur entre la valeur 1 :
Exemple 1: #!/bin/sh i=0 while [ $i -ne "1" ] do read i done
A. NAANAA
20
A. NAANAA
21
Exercices
Exercice 1: Afficher une table de multiplication #!/bin/sh foriin123456789 expr$i\*$1 done Exercice 2: Compter jusqu' 100 #!/bin/bash i=0 while[$ine100]do i=`expr$i+1` echo$i done
A. NAANAA
22