apprendre bash_ les variable

                      Les variables


Un script shell est un ensemble de commandes interpretées. Par convention, un script bash
commence avec la ligne :

#!/bin/bash

Cette premiere ligne indique  à l’interpreteur de commande que le shell qui sera executé est
un bash, et ceci, quel que soit le shell interactif choisi par l’utilisateur pour les terminaux de
commandes (xterm). Cette ligne revet une grande importance puisque la syntaxe des differents
langages de scripts shells est differente.
Il existe deux types de variables en shell, les variables d’environnement et les variables
definies explicitement par l’utilisateur.

 Un exemple de script

# !/bin/bash
# ce script ecrit sur la sortie standard la liste des ´
# fichiers du repertoire courant ´
bienvenu=’Bonjour utilisateur ’
bonjour=$bienvenu$USER
echo
echo $bonjour
echo ’Votre repertoire courant est :’ ´
echo ”–> $PWD <– ”
echo ’et son contenu est le suivant :’
echo
ls
echo
Le caractere # est utilis ` e pour les commentaires. Tout ce qui suit ce caract ´ ere n’est pas pris `
en compte pour l’execution. Il s’agit simplement d’informations qui sont ajout ´ ees au script pour ´
ameliorer sa lisibilité


              Les Variables internes


$USER et $PWD sont des variables internes. La liste des variables internes est longue, et
est partiellement commune a la liste des variables d’environnement qui peuvent ` etre obtenues
par la commande env. Ces variables n’ont pas a etre definies par l’utilisateur, elles existent
independamment du script. Certaines sont interessantes :
– $HOME : repertoire racine de l’utilisateur
– $HOSTNAME : nom de la machine
– $PATH : ensemble des chemins vers les executables
– $PWD : repertoire courant

– $REPLY
– $SECONDS
– parametres de position


 Variables definies par l’utilisateur

Les variable definies par l'utilisateur

Pour les variables definies par l’utilisateur, une affectation se fait avec le nom de la variable ´
qui n’est pas precede par le symbole $ comme cela est illustré avec les variables  bienvenu et
bonjour.


Attention : pour une affectation, il ne doit pas y avoir d’espace entre le nom de la variable, le
signe = et la valeur.

Pourquoi ?

toute ligne dans un script est interpretee comme une commande par le langage de commandes,
selon le format classique :
nom-de-la-commande argument1 argument2 argument2
Operation sur les variables :
Pour effectuer une operation sur une variable, ce n’est pas aussi simple, plusieurs solutions
existent.


# !/bin/bash
var=1
echo ”\$var=$var”
var2=$var+1
echo ”\$var2=$var2”
let var3=$var+1
echo ”\$var3=$var3”
var4=$((var+1))
echo ”\$var4=$var4”
echo


La seconde façon de faire les choses est un peu plus compliquee il s’agit de la substitution
de commande.
Substitution de commande :
Ce mecanisme vous permet de r ecuperer le resultat d’une commande et de le traiter comme
s’il etait ecrit sur une ligne de commande. Il existe deux syntaxes pour ce mecanismes, les  parenthese $(commande) et les simples quotes (accents graves) comme ceci ‘commande‘.


Utilisation des quotes 

L’utilisation des double quotes (”) permet l’affichage du contenu des variables qui sont con￾tenues dans la chaine. Dans l’exemple precedent c’est ce qui se passe avec $PWD. Par contre,
les simples quotes (’) ne le permettent pas. Donc, si vous manipulez des donnees textuelles
simples dans lesquelles rien ne doit etre interpreté preferez les simples quotes.
L’exemple suivant est tres parlant concernant l’utilisation des quotes dans les shell. Voici
deux shells apparamment tres proches (ils ne different que par l’utilisation de quotes dans le test)

Commentaires