Quelle est la différence entre printf et écho dans bash?

Quelle est la différence entre printf et écho dans bash?
Nous pouvons vouloir organiser le résultat d'une opération Ubuntu d'une manière spécifique. Nous devrions peut-être éviter les résultats gonflés et présenter des informations dans un style concis. Les commandes Echo et Printf sont également construites. Printf prévoit la création d'une chaîne de formatage et offre un statut de quitte non nul lorsqu'il échoue. Tandis qu'Echo part normalement avec un statut 0 et sort généralement les entrées dirigées à la fin de la ligne de la ligne sur ce résultat standard. Le «printf» vous offre plus d'options pour le format de sortie que «l'écho». Tout au long de cette brève leçon, nous examinerons comment styliser les résultats du terminal en utilisant les instructions Echo et printf sur Ubuntu 20.04 Système Linux.

Exemple 01:

Pour souligner et voir le fonctionnement des déclarations printf et écho, ayons notre premier exemple simple et facile à faire. Vous devez ouvrir l'application Shell Console pour le faire. Pour cela, utilisez le «Ctrl + Alt + T» sur l'écran de bureau de votre Ubuntu 20.04 Système d'exploitation Linux. La demande de console sera ouverte dans quelques instants, et pour cela, vous n'avez pas à attendre beaucoup. Une fois le terminal ouvert, nous effectuerons séparément les instructions «printf» et «echo» pour voir comment ils fonctionnent correctement. Donc, nous avons d'abord essayé «printf» sur le shell pour imprimer le nombre de caractères dans une chaîne «Linux» sur notre shell.

La commande a été utilisée avec l'indicateur «-m» avec le mot-clé «WC». La commande a été répertoriée dans l'image ci-dessous. Après avoir exécuté cette commande en appuyant sur la touche «Entrée», nous avons obtenu 5 en conséquence. Cela signifie que le «printf» ne contient que 5 lettres. Comme le printf est une instruction standard, c'est pourquoi il afficherait les arguments sous forme formaté standard tout en contrôlant.

$ printf 'Linux' | wc -m

Jetons un coup d'œil à la déclaration «echo» maintenant. Ainsi, la syntaxe globale de la commande sera la même, mais l'instruction «Echo» sera utilisée à la place de «printf» ici. La chaîne fournie dans la commande est également la même. Lorsque nous exécutons la commande sur la console, il affiche le numéro 6 en conséquence. Pourquoi cela se produit-il lorsqu'une chaîne ne contient que 5 caractères? En effet. Si nous ajoutons de l'espace avant ou après la chaîne, il le prendra également comme un personnage.

$ echo 'Linux' | wc -m

Exemple 02: Utilisation de printf

Voyons d'abord le fonctionnement de la déclaration «printf» dans notre nouvel exemple. Créer un nouveau fichier bash «Test.sh ”avec l'utilisation d'une commande nano touch suivie de la commande« nano »dans le shell. La commande nano sera utilisée pour ouvrir le fichier au sein d'un éditeur «nano». Une fois le fichier ouvert, nous avons d'abord ajouté l'extension bash à la première ligne d'un fichier. La variable «Str» a été initialisée avec une longue valeur de chaîne dedans. Nous avons déclaré une variable intégrée «IFS» pour utiliser l'espace comme valeur de délimiteur.

Ensuite, nous avons utilisé la commande «Read» dans la ligne suivante pour lire les valeurs d'une variable de chaîne en tant que tableau et l'enregistrer dans la variable «arr». Le drapeau «-ra» a été utilisé ici à cette fin spécialement. Après cela, la déclaration d'écho est utilisée ici pour nous informer de la taille d'une variable de tableau «arr». La boucle «For» a été initialisée pour itérer chaque mot d'une variable de chaîne et l'afficher sur le shell à l'aide de l'instruction «printf». Comme nous savons que le printf ne prend pas automatiquement la ligne suivante comme son prochain caractère, nous avons donc utilisé le caractère «\ n» dans l'instruction printf pour le faire. La boucle se termine ici et le code sera enregistré à l'aide d'une clé de raccourci «Ctrl + S».

Pour voir les résultats de l'instruction PRINTF, exécutez le fichier avec la commande «bash» pour le faire fonctionner. La sortie affiche la taille d'un tableau, je.e., 9. Après cela, chaque mot d'une chaîne a été itéré à l'aide de la boucle «pour» et affiché sur le terminal séparément à chaque ligne suivante. Cela a été fait en utilisant le «\ n» dans la clause «printf». Sinon, cela ne serait peut-être pas arrivé.

$ Bash Test.shot

Exemple 03: Utilisation d'écho

Dans ce nouvel exemple, nous illustrons le fonctionnement de la déclaration «Echo» dans le script bash. Donc, nous avons ouvert le même «test.sh »trouver à l'aide d'une commande« nano »dans la console shell. Le fichier est ouvert dans l'éditeur Nano. Tout le code est resté inchangé, je.e., support bash, chaîne «str», variable IFS, lecture des instructions et boucles «pour». Le seul changement que vous avez à faire est: remplacer le mot «printf» par le mot-clé «echo» dans le script bash.

Vous pouvez voir que nous avons également ajouté «\ n» dans l'instruction «Echo» pour monter sur la nouvelle ligne. Comme nous le savons tous, la déclaration «Echo» considère toujours la nouvelle ligne comme un personnage supplémentaire; Par conséquent, il ne formara pas la sortie en tant que telle.

Exécutons le code pour voir les résultats. Au lieu de créer un écart de 1 nouvelle ligne, la déclaration d'écho considère le «\ n» comme un personnage supplémentaire. Par conséquent, la sortie ressemble à quelque chose ci-dessous.

$ Bash Test.shot

Mettons à jour le code pour obtenir les résultats requis. Donc, après avoir ouvert le fichier, nous avons supprimé le caractère «\ n» de la chaîne d'instruction Echo. Enregistré le code et quitté le fichier.

Après avoir exécuté le code mis à jour cette fois, nous avons à nouveau la taille d'un tableau de chaînes comme «9». Après cela, tous les mots d'un tableau ont été affichés séparément, chacun sur la ligne suivante.

$ Bash Test.shot

Conclusion:

Ce guide contient plus d'un exemple pour illustrer la fonctionnalité et la différence des instructions «printf» et «écho». Préférez utiliser la déclaration «printf» dans Bash car elle est plus standardisée car «Echo» se comporte des poteaux sur d'autres plates-formes.