Sommaire

Substitution de variables

ksh

bash

La substitution de variables a été abordée au chapitre Les bases de la programmation shell - Les variables utilisateur. Cette section présente de nouvelles fonctionnalités disponibles au niveau des shells bash et ksh.

1. Longueur de la valeur contenue dans une variable

Syntaxe

${#variable}

Exemple

$ var="ma chaine" 
$ echo ${#var} 
9 
$

2. Manipulation de chaînes de caractères

Les fonctionnalités présentées ci-dessous permettent de manipuler la valeur contenue dans une variable.

Le contenu de la variable n’est jamais modifié.

a. Retirer le plus petit fragment à gauche

Syntaxe

${variable#modele}

modele est une chaîne de caractères pouvant inclure les caractères spéciaux *, ?, [], ?(expresssion), +(expression), *(expression), @(expression), !(expression) (cf. chapitre Mécanismes essentiels du shell - Substitution de noms de fichiers).

Le caractère # signifie "Chaîne la plus courte possible en partant de la gauche".

Exemple

Afficher la variable ligne sans son premier champ :

$ ligne="champ1:champ2:champ3" 
$ echo ${ligne#*:} 
champ2:champ3

b. Retirer le plus grand fragment à gauche

Syntaxe

${variable##modèle}

Les caractères ## signifient "Chaîne la plus longue possible en partant de la gauche".

Exemple

Afficher le dernier champ de la variable ligne :

$ ligne="champ1:champ2:champ3" 
$ echo ...