Vous êtes ici: Utilitaires / Programmation en BASH / 3 - Les variables / 3.7 - Affichage de variables à l'aide de printf
Friday, 21/09/2018

3.7 - Affichage de variables à l'aide de printf

La commande printf permet d'obtenir un affichage plus élégant et plus fonctionnel des nombres et des chaînes de caractères. L'appel de cette commande interne à BASH s'effectue selon la syntaxe générale suivante:

printf 'chaîne formatée' $variable $autre_variable

La chaîne formatée est une chaîne de caractères imprimables et/ou non-imprimables accompagnés de codes spécifiant le format d'impression des arguments ($variable). Il est important de remarquer que la chaîne formatée est insérée entre des apostrophes et non des guillements. Voici donc un exemple de chaîne formatée:

'La variable x vaut %d et la variable y vaut »%x.'

Le format d'impression minimum est constitué du caractère % suivi d'un code de conversion dont voici les principaux:

 

dentier affiché en décimal
xentier affiché en hexadécimal en utilisant des lettres minuscules
Xentier affiché en hexadécimal en utilisant des lettres majuscules
fréel affiché en notation conventionnelle (ex: 121.34)
eréel affiché en notation scientifique (ex: 1,2134e2)
ccaractère (un seul)
schaîne de caractères
%%affiche le caractère %

Pour afficher les caractères non-imprimables suivants, utilisez la syntaxe suivante:

 

\abeep
\bespacement arrière (backspace)
\fretour de chariot
\ninterligne (CR et LF)
\ttabulation horizontale
\vtabulation verticale
\\le caractère \
\"guillements
\'apostrophe
\0nul
\xcccaractère de valeur hexadécimal (\x00 à \xFF)

Exemple:

x=127
y=-34
printf 'x=%d et y=%d\n $x $y

 

Affiche: x=127 et y=-34

Le tableau suivant présente quelques exemples simples d'utilisation de la commande printf:

 

ValeurFormatAffichageRemarques
659%d
659
Aucun champ spécifié
659%4d
 659
----
Champ total de 4 caractères avec justification à droite
-659%5d
 -659
-----
Champ total de 5 caractères avec justification à droite (affichage automatique du signe -)
659%+4d
+659
----
Champ total de 4 caractères avec justification à droite avec affichage forcé du signe +
659%-4d
659
----
Champ total de 4 caractères avec justification à gauche
659%06d
000659
Champ total de 6 caractères avec justification à droite et remplissage avec des 0
2.348%f
2.348000
Aucun champ spécifié. Aucune précision: 6 chiffres après le point, par défaut
2.348%.1f
2.3
Aucun champ spécifié. Précision: 1 chiffre après le point, majoration automatique
2.348%5.2f
 2.35
-----
Champ total: 5 chiffres, incluant le point. Précision: 2 chiffres après le point, majoration automatique
255%x
ff
Aucun champ spécifié. Format hexadécimal en utilisant les lettre minuscules
255%X
FF
Aucun champ spécifié. Format hexadécimal en utilisant les lettre majuscules
10%02x
0a
Champ total de 2 caractères avec justification à gauche et remplissage par des 0