Si vous utilisez le shell Bash depuis un certain temps, vous savez probablement comment imprimer des chaînes dans le terminal Linux en utilisant la commande echo. La commande printf, cependant, rend l'impression de texte avec un formatage spécifique beaucoup plus facile.

Aujourd'hui, nous allons apprendre à utiliser la fonction printf afin d'améliorer nos compétences en script Bash.

Qu'est-ce que la fonction printf de Bash?

Comme son nom l'indique, printf est une fonction qui imprime des chaînes de texte formatées. Cela signifie que vous pouvez écrire une structure de chaîne (le format) et la remplir plus tard avec des valeurs (les arguments).

Si vous connaissez les langages de programmation C / C ++, vous savez peut-être déjà comment fonctionne printf. Printf dans le shell Bash est très similaire, mais il présente quelques petites différences.

Apprendre encore plus: Meilleurs sites pour démarrer avec la programmation C ++

Comment utiliser printf dans le shell Bash

La syntaxe de base de printf est:

format printf [argument]

Printf imprimera le format chaîne lors de l'implémentation s'échappe (\) et directives (%) grâce à l'utilisation de arguments. Notez la sortie de la commande suivante:

$ printf "Bonjour,% s" monde
Bonjour le monde

Printf a pris le monde argument et remplacé le % s caractère dans la chaîne spécifiée avec.

Vous remarquerez peut-être qu'après la sortie, Bash ne crée pas de nouvelle ligne pour vous. Contrairement à la commande echo, printf ne supposera pas que vous souhaitiez une nouvelle ligne après l'impression de la sortie. Ainsi, vous devrez utiliser le caractère de nouvelle ligne \ n dans chaque cas.

Pour imprimer une chaîne puis passer à une nouvelle ligne, tapez printf "Bonjour le monde \ n".

Bonjour le monde

Il est important de garder à l'esprit que printf tentera de réutiliser le format pour tous vos arguments. Vous pouvez utiliser cela à votre avantage, mais si vous ne faites pas attention, vous pouvez vous retrouver avec des résultats comme celui-ci:

$ printf "Je m'appelle% s" Jordan Gloor
Je m'appelle Jordan Je m'appelle Gloor

Vous devez également savoir que si un argument est manquant, printf interprétera toutes les directives comme 0 (pour un nombre) et nul (pour une chaîne).

$ printf "Bonjour,% s."
Bonjour, .

Maintenant que vous savez comment fonctionne le script Bash avec printf sous Linux, vous êtes prêt à commencer à l'utiliser dans vos commandes.

Exemples de Linux Bash printf

Printf propose de nombreux spécificateurs de format que vous pouvez utiliser dans vos scripts. Mais aujourd'hui, nous ne couvrirons que quelques-uns des plus courants pour la fonction.

1. Formater la sortie avec une chaîne

Pour mettre en forme la sortie avec des chaînes de texte, utilisez le % s directif.

$ printf "% s est l'un des plus grands% s en ligne." MUO "publications technologiques"
MUO est l'une des plus grandes publications technologiques en ligne.

2. Formater la chaîne de sortie avec des décimales

Pour mettre en forme une chaîne avec un entier, vous pouvez utiliser le %ré directive pour une décimale signée.

$ printf "MUO a été fondé en% d." 2007
MUO a été fondée en 2007.

Notez que si vous souhaitez utiliser une décimale non signée dans la sortie, vous devrez utiliser le % u directive à la place.

En rapport: Que signifie «Bash» sous Linux?

3. Fonctions mathématiques de sortie à l'aide de printf

Le formatage des fonctions mathématiques avec la commande printf est facile. Placez simplement votre expression à l'intérieur de doubles parenthèses comme vous le faites normalement dans Bash, et spécifiez l'expression dans la liste d'arguments.

$ printf "1 + 1 est% d" $ ((1 + 1))
1 + 1 vaut 2

4. Mettre en forme les nombres hexadécimaux

Si vous devez formater un nombre hexadécimal, utilisez %X pour les minuscules et %X pour les majuscules.

$ printf% X 1000
3E8C

5. Imprimer la date et l'heure

Pour imprimer la date et l'heure actuelles, vous pouvez combiner printf avec le Date et passez les directives suivantes.

$ printf "% (% m-% d-% Y% H:% M:% S) T" $ (date +% s)
03-26-2021 15:27:57

Vous pouvez voir les spécificateurs de format pour le mois, le jour, l'année, l'heure, la minute et la seconde dans la sortie susmentionnée.

6. Formater les chaînes avec des caractères Unicode

Pour imprimer des caractères Unicode avec printf, utilisez le \ u échapper pour Unicode 16 bits et \ U pour Unicode 32 bits.

Par exemple, vous pouvez imprimer le droits d'auteur symbole avec la commande suivante:

$ printf "\ u00A9"
©

7. Ajouter un espacement à la sortie

Vous pouvez formater vos chaînes avec un espacement en définissant, avant le spécificateur de directive, un nombre minimal de caractères imprimés. Les caractères inutilisés seront remplis d'espaces.

Par exemple, en tapant printf "% s:% 5d \ n" "Valeur 1" 25 "Valeur 2" 120 affichera:

Valeur 1:25
Valeur 2: 120

le % 5d le spécificateur de format dans la sortie indique que la chaîne formatée contiendra au moins cinq caractères. Puisque 25 n'a que deux chiffres, des espaces sont ajoutés aux caractères restants.

Si vous passez un nombre négatif comme largeur, la directive sera justifiée à gauche au lieu de justifiée à droite.

$ printf "% -10s:% d" "Cercles" 25 "Boîtes" 120
Cercles: 25 boîtes: 120

Si vous voulez rendre la variable width, vous pouvez passer un astérisque au lieu d'un nombre, et printf utilisera le prochain numéro qu'il trouvera dans la liste d'arguments.

$ printf "% * s:% d" -10 "Cercles" 25-10 "Boîtes" 120
Cercles: 25 boîtes: 120

En rapport: Tout ce que vous devez savoir sur Bash For Loops sous Linux

Apprentissage de la commande Linux printf

Avec la commande printf dans votre ceinture utilitaire de script Bash, vous êtes prêt à commencer à imprimer des chaînes complexes et variées dans votre terminal. Lorsque vous développez vos scripts Bash, il est important de vous assurer que vous travaillez dans l'environnement le plus productif possible. Cela améliorera non seulement vos compétences en ligne de commande, mais améliorera également votre flux de travail en général.

E-mail
10 meilleurs distributions Linux pour les développeurs

Prêt à démarrer le développement sur un système d'exploitation open source? Voici les meilleures distributions Linux pour la programmation.

Lire la suite

Rubriques connexes
  • Linux
  • Linux Bash Shell
  • Commandes Linux
A propos de l'auteur
Jordan Gloor (32 articles publiés)

Jordan est un tuteur et journaliste passionné par le fait de rendre Linux accessible et sans stress pour tous. Il a un BA en anglais et un truc pour le thé chaud. Pendant les saisons chaudes, il aime faire du vélo sur les collines des Ozarks où il vit.

Plus de Jordan Gloor

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives!

Un pas de plus…!

Veuillez confirmer votre adresse e-mail dans l'e-mail que nous venons de vous envoyer.

.