Joseph Tux
Shell BASH

Opérateur « variable » : ${}

dimanche 5 juillet 2009

à l’intérieur de ${ ... }

nom:debut:longueur    sous-chaine
#nom            Longueur de la chaine
nom#motif     Supprime le début de chaine (supression minimale)
nom##motif   Supprime le début de chaine ( supression maximale)
nom%motif    Supprime la fin de chaine ( supression minimale )
nom%%motif   Supprime la fin de chaine (supression maximale )
nom/motif/chaine  Remplace 1 occurence par chaine
nom//motif/chaine Remplace toute occurence par chaine

SYNTAXE DE L’OPERATEUR ${} [1]

  • La syntaxe $var ;
  • est une facilité de ${var} ;

L’ opérateur ${} doit répondre à une fonction : ’=’ (affectation), ’echo’, ’printf’ (affichage) ou ’ :’ = ne rien faire !( mais le faire !!! ).

  • Ici il la commande ’ :’ ( ne fait rien ) est utile.

Utilisation des joker : * et ? et des classes de caractères [ ], + échappement : \* \ ? et \\ .

 VARIABLES SCALAIRES

TRAITEMENTS DE CHAINE :

 EXTRACTION :

${var:5:2}      extraire 2 caractères à partir du N°5 (= le 6ème:  1er=N°0 ).
${var:12}       extraire tout à partir du 13ème caractère.
${var#motif}    variable amputée de motif -minimal- en début de chaine.
${var##motif}   variable amputée de motif -maximal- en début de chaine.
${var%motif}    variable amputée de motif -minimal- en fin de chaine.
${var%%motif}   variable amputée de motif -maximal- en fin de chaine.

 REMPLACEMENT :

${var/motif/chaîne} renvoie var, en remplaçant motif -minimal- par chaîne.
${var//motif/chaîne renvoie var, en remplaçant motif -maximal- par chaîne.

 TRAITEMENT A PROPOS DE LA CHAINE :

${#var}         Donne la longueur de la chaine.
${var:-valeur}  Valeur par défaut: renvoie 'valeur', si var est vide ou indéfinie.
${var:=valeur}  Contenu par défaut: Affecte 'valeur' à 'var', si var est vide ou indéfinie.

Exemple pour ces 2 derniers traitements : - [2] - [3]

// a et b n'existent pas:
$ echo "1 ${a:-defaut} ${b:=assure}" && echo "2 a= ${a} ; b= ${b}"
1  defaut assure
2 a=  ; b= assure
// a n'existe pas, b contient "assure"
  • $var : ?’message’ Renvoie ’message’ si la variable est vide ou indéfinie et interrompt. [4]
  • $var :+’existe’ Renvoie ’existe’ si var est définie et non vide.

Exemple :

$ a='' ; echo 'Résultat:' && echo "${a:-vide}" && echo "a=$a" && echo "${a:=nouv}" && echo ${a:+'existe'} && echo ${#a}
Résultat:
vide
a=
nouv
existe
4

[1] manipulation de variable , y compris sa lecture

[2] « - » remplace (provisoirement) la variable

[3] « = » affecte la variable

[4] die ?


Accueil du site | Contact | Plan du site | | Statistiques du site | Visiteurs : 109 / 11552

Suivre la vie du site fr  Suivre la vie du site GNU, LINUX, BSD, LL  Suivre la vie du site AIDES GNU/LINUX  Suivre la vie du site BASH   ?

Site réalisé avec SPIP 2.1.12 + AHUNTSIC

Creative Commons License