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


2_Les variables

Les variables peuvent contenir n'importe quelle valeur. On ne déclare pas le type de la variable, contraitement à beaucoup de langages. Ici, il est déterminé automatiquement : nombre entier ou chaines de caractère.

On les déclare en mettant leur nom suivi du signe '=' et de la valeur, sans espaces. Si la valeur est une suite de caractès sééparés par des espaces, il faudra alors mettre des guillemets ou des apostrophes. Pour utiliser les variables, on met leur nom précédé du signe '$' sans espace.

exemple :

#!/bin/bash
nb=25
mon_texte="bonjour tout le monde"
echo $nb
echo $mon_texte

A l'écran ça nous donne :

$ ./test.sh
25
bonjour tout le monde
$

Voici maintenant un exemple de manipulation des variables, où on voit qu'on ne peut pas faire n'importe quoi avec les variables.

#!/bin/bash
nb=25
mon_texte="bonjour tout le monde"
mon_texte_2="coucou"
echo $nb
echo $mon_texte
echo $mon_texte_2
let $[ nb=$nb+1 ]
let $[ mon_texte=$mon_texte+1 ]           # erreur faite exprès !!
mon_texte_2=$mon_texte_2" les gens"
echo "nb + 1 = $nb"
echo "mon_texte + 1 = $mon_texte"
echo $mon_texte_2

Et le résultat :

$ ./test.sh
25
bonjour tout le monde
coucou
./test.sh: mon_texte=bonjour tout le monde+1 : syntax error in expression (error token is "tout le monde+1 ")
nb + 1 = 26
mon_texte + 1 = 0
coucou les gens

On contate bien qu'on ne peut pas faire d'opération arithmétique avec des chaines de caractères, ce qui est normal, évidement. Dans un langage compilé avec déclaration du type de variable, comme le C, ont aurait été averti dès la compilation. Ici, il faut bien faire attention à ce qu'on fait. C'est la contrepartie de la souplesse apportée par bash.

Quelques variables utiles
<< page précédente
1_Notre premier script
page suivante >>
3_Les commandes composées

Valid XHTML 1.1

logo firefox logo ubuntu logo debian logo mandriva logo gimp