Le "imprimer" La commande dans les scripts bash fonctionne de la même manière "printf ()” fonctionne en langage C. Cet article se concentrera sur le "imprimer” commande, sa syntaxe et des exemples qui élaborent davantage l'utilisation de cette commande. Vérifions la syntaxe du "imprimer" commande :
imprimer : Il est facultatif d'affecter la sortie à une variable.
Comment utiliser la commande printf dans les scripts bash à l'aide de l'éditeur Vim :
Nous utilisons l'éditeur Vim pour ce guide en raison de sa riche fonctionnalité et de sa facilité d'utilisation. Obtenez Vim sur votre appareil en utilisant :
$ sudo apt installer vimLancez l'éditeur de vim :
$ vimÉcrivons un programme simple pour imprimer une chaîne en utilisant "printf":
#! /bin/bashprintf "Bonjour Linuxhint"
Pour enregistrer le fichier, appuyez sur la touche "Esc” pour changer de mode, puis tapez ":w exemple.sh" puis "Entréer". Ouvrez maintenant une nouvelle fenêtre de terminal et tapez :
$bash exemple.shLa commande ci-dessus exécutera le script d'impression du texte "hello linuxhint" comme indiqué ci-dessous :
Maintenant, incluons quelques spécificateurs de format :
#! /bin/bashprintf "%s\n" "Bonjour Linuxhint"
Dans l'exemple ci-dessus, "%s" indique que l'argument correspondant doit être traité comme une chaîne et "\n" pour la nouvelle ligne. De même, si nous utilisons « %d », alors l'argument sera traité comme un entier :
#! /bin/bashprintf "%s\n" "Bonjour Linuxhint" "En savoir plus sur" "Linux"
Les trois arguments seront traités comme une chaîne et imprimés dans une nouvelle ligne, comme illustré dans la sortie suivante :
Un autre exemple est mentionné ci-dessous pour mieux comprendre l'utilisation de la commande « printf » :
#! /bin/bashecho "Entrez votre nom"
lire le nom
echo "Entrez votre âge"
lire l'âge
printf "Votre nom : %s\nVotre âge : %s\n" "$nom" "$age"
« Votre nom : %s\n Votre âge : %s\n » est au format alors que « $name » "$age" sont les arguments. Considérant que « %s » pointant les arguments.
Comment utiliser les spécificateurs de conversion avec la commande printf :
Les spécificateurs de conversion sont des caractères utilisés avec le signe « % » pour indiquer comment traiter les arguments. Vérifions la liste de certains spécificateurs couramment utilisés :
Spécificateur | rédescription |
---|---|
%% | Imprime le symbole « % » |
%c | Prend les arguments comme un seul caractère |
%e et %E | Prend l'argument en nombre à virgule flottante et imprime en notation exponentielle, %e pour les lettres minuscules et %E pour majuscule |
%g et %G | Prend l'argument en nombre à virgule flottante et imprime en notation normale ou exponentielle |
%F | Prend l'argument sous forme de nombres flottants |
%ré | Prend les arguments comme des entiers signés |
%u | Prend l'argument sous forme d'entiers non signés |
%o | Prend l'argument comme un nombre octal non signé |
%x et %X | Prend les arguments sous forme d'entiers hexadécimaux non signés |
Développons davantage les spécificateurs ci-dessus avec un exemple en bash :
#! /bin/bashecho "Entrez un nombre à convertir"
lire le numéro
printf « Décimal : %d\nOctal : %o\nHex : %X\n » « $nombre » « $nombre » « $nombre »
Comment utiliser les directives Flag, Width et Precision avec la commande printf :
Les directives Flag sont fournies avec une utilisation facultative avec la commande "printf". Les directives flag couramment utilisées sont
- "-" Justifier à gauche la sortie
- "+" Ajoute le signe "+" avec un entier
- "0" Ajoute "0" avec un nombre au lieu d'espaces
Les directives de largeur ajoutent de l'espace avec la sortie généralement utilisée après le drapeau. Comprenons-le avec un exemple :
#! /bin/bashecho "Entrez votre nom"
lire le nom
echo "Entrez votre âge"
lire l'âge
printf "Votre nom et âge sont : %5s %5d\n" "$nom" "âge"
"%30s" signifie que l'espace est de 30 caractères, et pour aligner le formulaire de sortie à gauche, utilisez le signe "-" "%-30s".
La directive de précision se compose du point ".” Suite d'entier positif :
#! /bin/bashprintf « %.2f” 2.56473
La sortie serait :
Si le nombre est un entier, la directive de précision ajoutera « 0 » avant le nombre. Si le nombre est de type virgule flottante, la directive de précision spécifiera le nombre de chiffres positifs après la virgule décimale. Pour la chaîne, il spécifie le nombre de caractères à afficher :
#! /bin/bashprintf "%.2f\n” 2.468936
printf « %.3d\n” 10
printf « %.3s\n" "samlinux"
Paramètres échappés de barre oblique inverse :
Les paramètres d'échappement de la barre oblique inverse, également appelés séquences d'échappement, sont utilisés avec une barre oblique inverse pour formater la chaîne avec la commande "printf". Ces séquences ne se représentent pas mais interprètent en d'autres caractères. Certaines séquences d'échappement couramment utilisées sont :
Personnage | La description |
---|---|
\\ | Imprime le caractère barre oblique inverse |
\b | Imprime le caractère de retour arrière |
\n | Imprime la sortie dans une nouvelle ligne |
\r | Imprime un retour chariot (curseur en début de ligne) |
\t | Donne un espace de tabulation à partir de la droite |
\v | Donne un espace de tabulation |
Conclusion:
Lorsqu'il s'agit d'imprimer quelque chose dans un script bash, la commande « echo » est la plus couramment utilisée car elle est facile à utiliser et à mémoriser. Mais la commande « echo » a ses limites. Par conséquent, pour formater correctement la sortie, le « imprimé » la commande peut être utilisée. le « imprimé » La commande est livrée avec de nombreuses options pour formater la sortie de chaîne et même les conversions et le formatage des nombres de base. Ce guide comprend parfaitement les fonctionnalités de la commande "printf" dans les scripts bash avec des exemples.