connectiva penguin bsd logo

Les scripts bash

1_Notre premier script

2_Les variables

3_Les commandes composées    (; | & || && $() {} ``)

4_Ecriture à l'écran / lecture au clavier    (echo read)

5_Le passage de paramètres

6_Les structures conditionnelles    (if then else while until)

7_Les autres structures    (for in do case select)

8_Les fonctions

9_Pour aller plus loin


4_Ecriture à l'écran / lecture au clavier

Ecriture à l'écran

L'écriture à l'écran est très simple, et on l'a déjà vue dans notre premier script. On utilise la commande 'echo' suivie du texte à afficher.

Le texte à afficher peut être entouré de guillemets (") ou de côtes ('), mais ça n'est pas obligatoire. ATTENTION : si on utilise les côtes, les variables (appelées avec $, voir partie 2 - les variables) ne seront pas remplacées par leur valeur ; $variable sera considéré comme un texte (voir exemple ci-dessous).

#!/bin/bash
nom=fred
echo 1. Mon nom est $nom.
echo "2. Mon nom est $nom."
echo '3. Mon nom est $nom.'
echo -n "On ne retourne pas a la ligne."

Et voilà ce que ça nous donne :

$ ./test.sh
1. Mon nom est fred.
2. Mon nom est fred.
3. Mon nom est $nom.        <== la variable $nom n'est pas remplacée par sa valeur !
On ne retourne pas a la ligne.$

Dans l'exemple, on voit aussi une option pratique de echo, qui est l'option -n. Ca permet de ne pas revenir à la ligne à la fin. Dans l'exemple ça ne sert à rien, mais ça va nous servir tout de suite. Si vous voulez connaitre toutes les options de echo, tapez "man echo" dans votre console.

Lecture au clavier

La lecture au clavier se fait avec la commande 'read'. La syntaxe est "read valeur" ou "read val1 val2 val3". Si on rentre une seule valeur, elle sera stockée dans la première variable. Si on rentre plusieurs valeurs, séparées par des espaces, alors la première valeur ira dans la première variable, la deuxième valeur dans la deuxième variable, et ainsi de suite. S'il y a plus de valeurs que de variables, la dernière variable contient toutes les dernières valeur. S'il y a plus de variables que de valeurs, les dernières variables seront vides. Si on ne précise aucun nom de variable, la variable par défaut est "REPLY".

Tout ça sera peut-être plus clair avec l'exemple qui suit. Voici le programme :

#!/bin/bash
echo -n "entrez ce que vous voulez : "
read val1 val2 val3
echo val1=$val1
echo val2=$val2
echo val3=$val3

Et voilà les différants résultats obtenus, en fonction du nombre de valeurs qu'on lui donne :

$ ./test.sh
entrez ce que vous voulez : a b c
val1=a
val2=b
val3=c

$ ./test.sh
entrez ce que vous voulez : a b c d e
val1=a
val2=b
val3=c d e

$ ./test.sh
entrez ce que vous voulez : a b
val1=a
val2=b
val3=
<< page précédente
3_Les commandes composées
page suivante >>
5_Le passage de paramètres

Dernière mise à jour : 10 janvier 2010

Valid XHTML 1.1

logo firefox logo ubuntu logo debian logo mandriva logo gimp