Vous êtes ici :
Accueil Cours Administration Système La programmation Système avec Shell Les chaînes de caractères

La programmation Système avec Shell : Les chaînes de caractères

La protection de caractères

 

Le shell utilise différents caractères particuliers pour effectuer ses propres traitements ($ pour la substitution, > pour la redirection de la sortie standard, * comme caractère générique, etc.). Pour utiliser ces caractères particuliers comme de simples caractères, il est nécessaire de les protéger de
l'interprétation du shell. Trois mécanismes sont utilisables :

 

 
  Protection d'un caractère à l'aide du caractère
 

Ce caractère protège le caractère qui suit immédiatement le caractère .
 
Exemple : 

$ echo *  => le caractère * perd sa signification de caractère générique
*
$ echo *
tata toto
$
$ echo
   => le deuxième caractère perd sa signification de caractère de protection

$ echo N'oublie pas !
N'oublie pas !
$
 

Le caractère    permet également d’ôter la  signification de la touche  Entrée. Cela a pour effet d’aller à la ligne sans qu’il y ait exécution de la commande. En effet, après saisie d’une commande, l’utilisateur demande au shell l’exécution de celle-ci  en appuyant sur cette touche.
Annuler l’interprétation de la touche Entrée autorise l’utilisateur à écrire une longue commande sur plusieurs lignes.
 
Dans l’exemple ci-dessous, le shell détecte que la commande interne echo n’est pas terminée ; par conséquent, bash affiche une chaîne d’appel différente matérialisée par un caractère > suivi d’un caractère espace invitant l’utilisateur à continuer la saisie de sa commande.  
 
Exemple :

$ echo coucou Entrée
> salut Entrée  => terminaison de la commande : le shell l’exécute !
coucou salut
$
 
 

  Protection de caractères à l'aide d'une paire de guillemets  "chaîne"

 
Tous les caractères de chaîne sauf    $      `   "   sont protégés de l'interprétation du shell. Cela signifie, par exemple, qu’à l’intérieur d’une paire de guillemets le caractère $ sera quand même interprété comme une substitution, etc.
 
 

Exemple : 

$ echo  "< * $PWD  * >"

< * /home/tony * >
$
$ echo  "< * "$PWD"  * > "

< * "/home/tony" * >
$

 

 
  Protection totale  'chaîne'   

 

 
Entre une paire d’apostrophes (′), aucun caractère de chaîne (sauf le caractère ') n'est interprété.
 
Exemple : 

$ echo  '< * $PWD  * >'
< * $PWD * >
$
 

 

Longueur d'une chaîne de caractères

 

Syntaxe :  

${#paramètre}
 
Cette syntaxe est remplacée par la longueur de  la chaîne de caractères contenue dans paramètre. Ce dernier peut être une variable, un paramètre spécial ou un paramètre de position.
 
Exemple : 

$ echo  $PWD
/home/tony
$ echo ${#PWD}
14    =>  longueur de la chaîne /home/tony
$
$ set "au revoir"
$ echo  ${#1}

9    => la valeur de $1 étant au revoir, sa longueur est 9
$
$ ls >/dev/null
$  
$ echo ${#?}

1    => contenue dans $?, la valeur du code de retour de ls
$     => est  0, par conséquent la longueur est 1
 
 

 




Vous êtes ici :
Accueil Cours Administration Système La programmation Système avec Shell Les chaînes de caractères