Demo3 (partie 3)
-----------------------------------------------
-------------- HUITIEME PARTIE ----------------
-----------------------------------------------
Script : suite d'instructions exécutés de façon sérielle.
Il y a plusieurs langage de script dans Unix, ils sont associés à différents shell (Bourne Shell, C shell et Korn shell). Nous nous contenterons dans les labos de voir quelques éléments de scripting du Bourne Shell (le plus simple des trois). Pour spécifier qu'un script est écrit, et doit être interprété par la machine dans le langage du Bourne shell, on débute tout script par :
#!/bin/sh
*** Pour exécuter un script, on a qu'à se donner les droits d'exécution (% chmod 700 chemin/nom_du_script), puis à l'appeler à la ligne de commande (% chemin/nom_du_script).
Dans un script, on peut inclure n'importe quel instruction pouvant être interprété par le shell. Voici un exemple de script affichant un message à l'aide de la commande echo : script1.
Dans un autre exemple, voyons maintenant comment on peut "mettre en forme" la sortie d'une commande : script2.
Remarquez que dans le dernier script on utilise le '`'(accent grave) pour borner(entourer) une commande qui doit être exécutée plutôt que d'afficher simplement son nom.
On peut rendre l'exécution de certaines commandes conditionnelles, autrement dit, les commandes s'exécuteront seulement si une, ou des conditions sont respectées. Pour faire cela on utilise un "if". La structure classique d'un "if" (si) est : si "conditions" alors "instructions" sinon "instructions alternatives" fin du si. Ce qui se traduit par : si = if, alors = then, sinon = else et fin du si = fi.
if [ condition ] ; then
instructions
else
instructions alternatives
fi
voici un exemple de script utilisant un if : script3
On peut également répéter une, ou des instructions un certain nombre de fois. Pour faire une répétition on utilise une boucle "while". La structure classique d'un while (tant que) est : tant que "conditions" faire "instructions" fin du tant que. La traduction de c'est instructions est : tant que = while, faire = do et fin du tant que = done.
while [ condition ]
do
instructions
done
Voici un exemple de script utilisant une boucle while : script4
Notez dans le script l'utilisation de l'instruction read qui permet de lire une donnée entrée au clavier.
Avec ces quelques instructions de base, il n'y a que votre imagination pour limiter ce que vous pouvez faire... voici un exemple de script combinant les instructions que nous venons de voir : script_comp
-------------- HUITIEME PARTIE ----------------
-----------------------------------------------
Script : suite d'instructions exécutés de façon sérielle.
Il y a plusieurs langage de script dans Unix, ils sont associés à différents shell (Bourne Shell, C shell et Korn shell). Nous nous contenterons dans les labos de voir quelques éléments de scripting du Bourne Shell (le plus simple des trois). Pour spécifier qu'un script est écrit, et doit être interprété par la machine dans le langage du Bourne shell, on débute tout script par :
#!/bin/sh
*** Pour exécuter un script, on a qu'à se donner les droits d'exécution (% chmod 700 chemin/nom_du_script), puis à l'appeler à la ligne de commande (% chemin/nom_du_script).
Dans un script, on peut inclure n'importe quel instruction pouvant être interprété par le shell. Voici un exemple de script affichant un message à l'aide de la commande echo : script1.
Dans un autre exemple, voyons maintenant comment on peut "mettre en forme" la sortie d'une commande : script2.
Remarquez que dans le dernier script on utilise le '`'(accent grave) pour borner(entourer) une commande qui doit être exécutée plutôt que d'afficher simplement son nom.
On peut rendre l'exécution de certaines commandes conditionnelles, autrement dit, les commandes s'exécuteront seulement si une, ou des conditions sont respectées. Pour faire cela on utilise un "if". La structure classique d'un "if" (si) est : si "conditions" alors "instructions" sinon "instructions alternatives" fin du si. Ce qui se traduit par : si = if, alors = then, sinon = else et fin du si = fi.
if [ condition ] ; then
instructions
else
instructions alternatives
fi
voici un exemple de script utilisant un if : script3
On peut également répéter une, ou des instructions un certain nombre de fois. Pour faire une répétition on utilise une boucle "while". La structure classique d'un while (tant que) est : tant que "conditions" faire "instructions" fin du tant que. La traduction de c'est instructions est : tant que = while, faire = do et fin du tant que = done.
while [ condition ]
do
instructions
done
Voici un exemple de script utilisant une boucle while : script4
Notez dans le script l'utilisation de l'instruction read qui permet de lire une donnée entrée au clavier.
Avec ces quelques instructions de base, il n'y a que votre imagination pour limiter ce que vous pouvez faire... voici un exemple de script combinant les instructions que nous venons de voir : script_comp

4 Comments:
salut,
je voulais bien savoir si je peux definir un intervalle de valeurs avec l'instruction if.
c-a-d est ce que je peux l'ecrire d'une facon qui ressemble à ca pour un intervalle de 1 à 20 par exemple:
if [ valeur =< 20 ] ; then
instructions
else
instructions alternatives
fi
sinon comment je peux le faire.
merci d'avance.
By
Anonyme, at 4:49 a.m.
Difficilement avec ce que l'on a vu, parce qu'on a seulement mis des lettres (comme la lettre '1' ou les lettres '20') dans des variables. Et on ne peut interpreter si un mot est '<' ou '>' qu'un autre ! Bien sur que ça se fait, mais c'est le genre de chose que l'on fera en C/C++ dans les prochaine semaines...
Pardon pour la réponse qui n'en est pas une...
By
Eric, at 8:51 a.m.
salut,
if [ $valeur=chiffre ]
then
echo "ok" ;
fi
quelle est la bonne façon d'ecrire ma condition pour qu'il m'affiche ok seulement si ma $valeur est un chiffre(pas un autre caractere).
merci d'avance.
By
Anonyme, at 11:57 p.m.
Bonjour,
ça a été long mais voici une réponse intelligente :
tu peux faire des conditions comme ceci :
[ $chiffre -eq 4 ]
ou "eq" est pour egal(equal) et peut être remplacé par :
-"ne" (not equal) = pas égale
-"gt" (greater than) = plus grand que
-"lt" (less than) = plus petit que
-"ge" (greater or equal) = plus grand ou egal
-"le" (less or equal) = plus petit ou egal
voici un exemple d'utilisation :
#!/bin/sh
set choix="0";
echo "Entrez un chiffre : \c"
read choix
if [ $choix -eq 5 ]
then echo "Vous avez entre 5"
fi
if [ $choix -ne 5 ]
then echo "Vous n'avez pas entre 5"
fi
if [ $choix -lt 5 ]
then echo "Nombre entre < 5"
else if [ $choix -gt 5 ]
then echo "Nombre entre > 5"
fi
fi
By
Eric, at 10:55 a.m.
Publier un commentaire
<< Home