in

Comment utiliser la commande Echo sous Linux

Fatmawati Achmad Zaenuri / Shutterstock

le echo La commande est parfaite pour écrire du texte formaté dans la fenêtre du terminal. Et il n’est pas nécessaire que ce soit du texte statique. Il peut inclure des variables shell, des noms de fichiers et des répertoires. Vous pouvez également rediriger l’écho pour créer des fichiers texte et des fichiers journaux. Suivez ce guide simple pour savoir comment.

Echo répète ce que vous lui dites de répéter

Zeus aimait quitter le mont Olympe pour se marier avec de belles nymphes. Lors d’un voyage, il a dit à une nymphe des montagnes appelée Echo de waylay sa femme, Hera, si elle le suivait. Hera est venue chercher Zeus, et Echo a fait tout ce qu’elle pouvait pour garder Hera en conversation. Finalement, Hera perdit son sang-froid et maudit la pauvre Echo pour qu’elle ne répète que les derniers mots que quelqu’un d’autre avait dit. Ce que Hera a fait à Zeus quand elle l’a rattrapé est une conjecture.

Et cela, à peu près, est echoC’est beaucoup dans la vie. Il répète ce on lui a dit de répéter. C’est une fonction simple, mais vitale. Sans echo , nous ne pourrions pas obtenir une sortie visible à partir de scripts shell, par exemple.

Bien qu’il ne soit pas chargé d’une multitude de cloches et de sifflets, il y a de fortes chances que echo a des capacités que vous ne connaissiez pas ou que vous aviez oubliées.

écho? écho!

La plupart des systèmes Linux fournissent deux versions de echo. le Coquille de bash a son propre echo intégré, et il existe une version exécutable binaire de echo ainsi que.

Nous pouvons voir les deux versions différentes en utilisant les commandes suivantes:

type echo
whereis echo

le type la commande nous dit si la commande que nous lui passons comme son argument est un shell intégré, un exécutable binaire, un alias ou une fonction. Il nous rapporte que echo est un shell intégré.

Dès qu’il a trouvé une réponse, type arrête de chercher d’autres correspondances. Donc, cela ne nous dit pas s’il y a d’autres commandes avec le même nom présentes dans le système. Mais il nous dit lequel il trouve en premier. Et c’est celui qui sera utilisé par défaut lorsque nous émettrons cette commande.

le whereis La commande recherche l’exécutable binaire, le code source et la page de manuel de la commande que nous lui transmettons en tant que ligne de commande paramètre. Il ne recherche pas les composants internes du shell car ils n’ont pas d’exécutable binaire séparé. Ils font partie intégrante de l’exécutable Bash.

le whereis la commande rapporte que echo est un exécutable binaire situé dans le /bin annuaire.

Pour utiliser cette version de echo vous devrez l’appeler explicitement en fournissant le chemin de l’exécutable sur la ligne de commande:

/bin/echo --version

Le shell intégré ne sait pas ce que --version L’argument de ligne de commande est, il le répète simplement dans la fenêtre du terminal:

echo --version

Les exemples présentés ici utilisent tous la version par défaut de echo, dans le shell Bash.

Écrire du texte sur le terminal

Pour écrire une simple chaîne de texte dans la fenêtre du terminal, tapez echo et la chaîne que vous souhaitez afficher:

echo My name is Dave.

Le texte est répété pour nous. Mais au fur et à mesure que vous expérimentez, vous découvrirez bientôt que les choses peuvent devenir un peu plus compliquées. Regardez cet exemple:

echo My name is Dave and I'm a geek.

La fenêtre du terminal affiche un > signe et s’assied là, attendant. Ctrl + C vous ramènera à l’invite de commande. Que s’est-il passé là-bas?

Le guillemet simple ou l’apostrophe du mot «je suis» confus echo. Il a interprété ce guillemet simple comme le début d’une section de texte citée. Parce qu’il n’a pas détecté de guillemet simple de clôture, echo attendait plus d’entrée. Il s’attendait à ce que d’autres contributions incluent le guillemet unique manquant qu’il attendait.

Pour inclure un guillemet simple dans une chaîne, la solution la plus simple consiste à placer toute la chaîne entre guillemets doubles:

echo "My name is Dave and I'm a geek."

Mettre votre texte entre guillemets doubles est un bon conseil général. Dans les scripts, il délimite proprement les paramètres auxquels vous passez echo. Cela facilite grandement la lecture et le débogage des scripts.

Que faire si vous souhaitez inclure un caractère guillemet double dans votre chaîne de texte? C’est facile, il suffit de mettre une barre oblique inverse devant le guillemet double (sans espace entre eux).

echo "My name is Dave and I'm a "geek.""

Cela enveloppe le mot «geek» entre guillemets doubles pour nous. Nous verrons bientôt plus de ces personnages.

Utilisation de variables avec écho

Jusqu’à présent, nous avons écrit du texte prédéfini dans la fenêtre du terminal. Nous pouvons utiliser des variables avec echo pour produire une sortie plus dynamique et qui contient des valeurs insérées pour nous par le shell. Nous pouvons définir une variable simple avec cette commande:

my_name="Dave"

Une variable appelée my_name a été créé. La valeur du texte «Dave» lui a été attribuée. Nous pouvons utiliser le nom de la variable dans les chaînes auxquelles nous passons echo , et la valeur de la variable sera écrite dans la fenêtre du terminal. Vous devez mettre un signe dollar $ devant le nom de la variable à laisser echo sachez que c’est une variable.

Il y a une mise en garde. Si vous avez entouré votre chaîne de guillemets simples echo traitera tout littéralement. Pour afficher la variable et non la variable, utilisez des guillemets doubles.

echo 'My name is $my_name'
echo "My name is $my_name"

Un peu à juste titre, cela vaut la peine de le répéter:

  • L’utilisation de guillemets entraîne en quelque sorte l’écriture du texte dans la fenêtre du terminal.
  • L’utilisation de guillemets entraîne l’interprétation de la variable – également appelée développement de variable – et l’écriture dans la fenêtre du terminal.

Utilisation des commandes avec écho

Nous pouvons utiliser une commande avec echo et incorporer sa sortie dans la chaîne qui est écrite dans la fenêtre du terminal. Nous devons utiliser le signe dollar $ comme si la commande était une variable, et mettez la commande entière entre parenthèses.

Nous allons utiliser le commande date. Une astuce consiste à utiliser la commande seule avant de commencer à l’utiliser avec echo. De cette façon, s’il y a quelque chose qui ne va pas avec la syntaxe de votre commande, vous l’identifiez et la corrigez avant de l’inclure dans le echo commander. Ensuite, si le echo ne fait pas ce que vous attendez, vous saurez que le problème doit être avec le echo syntaxe parce que vous avez déjà prouvé la syntaxe de la commande.

Alors, essayez ceci dans la fenêtre du terminal:

date +%D

Et, satisfaits d’obtenir ce que nous attendons de la commande date, nous l’intégrerons dans un echo commander:

echo "Today's date is: $(date +%D)"

Notez que la commande est entre parenthèses et le signe dollar $ est immédiatement avant la première parenthèse.

Formatage du texte avec écho

le -e (activer les échappements de barre oblique inverse) nous permet d’utiliser des caractères d’échappement avec une barre oblique inverse pour modifier la mise en page du texte. Voici les caractères échappés par une barre oblique inverse que nous pouvons utiliser:

  • une: Alert (historiquement connu sous le nom de BEL). Cela génère le son d’alerte par défaut.
  • b: Écrit un caractère de retour arrière.
  • c: Abandonne toute autre sortie.
  • e: Écrit un caractère d’échappement.
  • F: Écrit un caractère de saut de formulaire.
  • n: Ecrit une nouvelle ligne.
  • r: Écrit un retour chariot.
  • t: Écrit une tabulation horizontale.
  • v: Écrit un onglet vertical.
  • : Écrit une barre oblique inverse.

Utilisons certains d’entre eux et voyons ce qu’ils font.

echo -e "This is a long line of textnsplit across three linesnwithttabstontthetthirdtline"

Le texte est divisé en une nouvelle ligne où nous avons utilisé le n caractères et une tabulation est insérée là où nous avons utilisé le t personnages.

echo -e "Herevarevverticalvtabs"

Comme le n caractères de nouvelle ligne, un onglet vertical v déplace le texte vers la ligne ci-dessous. Mais, contrairement au n les caractères de nouvelle ligne, le v la tabulation verticale ne commence pas la nouvelle ligne à la colonne zéro. Il utilise la colonne actuelle.

le b les caractères de retour arrière déplacent le curseur d’un caractère en arrière. S’il y a plus de texte à écrire sur le terminal, ce texte écrasera le caractère précédent.

echo -e "123b4"

Le «3» est écrasé par le «4».

le r causes du caractère de retour chariot echo pour revenir au début de la ligne courante et pour écrire tout autre texte à partir de la colonne zéro.

echo -e "123r456"

Les caractères «123» sont remplacés par les caractères «456».

le a le caractère d’alerte produira un «bip» audible. Il utilise le son d’alerte par défaut pour votre thème actuel.

echo -e "Make a bleepa"

le -n (pas de retour à la ligne) n’est pas une séquence échappée par une barre oblique inverse, mais elle affecte les cosmétiques de la mise en page du texte, nous en discuterons donc ici. Ça previent echo de l’ajout d’une nouvelle ligne à la fin du texte. L’invite de commande apparaît directement après le texte écrit dans la fenêtre du terminal.

echo -n "no final newline"

Utilisation de l’écho avec des fichiers et des répertoires

Vous pouvez utiliser echo comme une sorte de version du pauvre ls. Vos options sont rares lorsque vous utilisez echo comme ça. Si vous avez besoin de tout type de fidélité ou de contrôle précis, il vaut mieux utiliser ls et sa légion d’options.

Cette commande répertorie tous les fichiers et répertoires du répertoire courant:

echo *

Cette commande répertorie tous les fichiers et répertoires du répertoire courant dont le nom commence par «D»:

echo D*

Cette commande répertorie tous les fichiers «.desktop» du répertoire courant:

echo *.desktop

Oui. Cela ne joue pas à echoles atouts de. Utiliser ls.

Écriture dans des fichiers avec écho

Nous pouvons rediriger la sortie de echo et créez des fichiers texte ou écrivez dans des fichiers texte existants.

Si nous utilisons le > opérateur de redirection, le fichier est créé s’il n’existe pas. Si le fichier existe, la sortie de echo est ajouté au début du fichier, écrasant tout contenu précédent.

Si nous utilisons le >> opérateur de redirection, le fichier est créé s’il n’existe pas. La sortie de echo est ajouté à la fin du fichier et n’écrase aucun contenu existant du fichier.

echo "Creating a new file." > sample.txt
echo "Adding to the file." >> sample.txt
cat sample.txt

Un nouveau fichier est créé par la première commande et du texte y est inséré. La deuxième commande ajoute une ligne de texte au bas du fichier. le cat La commande affiche le contenu du fichier dans la fenêtre du terminal.

Et bien sûr, nous pouvons inclure des variables pour ajouter des informations utiles à notre fichier. Si le fichier est un fichier journal, nous souhaitons peut-être y ajouter un horodatage. Nous pouvons le faire avec la commande suivante.

Notez les guillemets simples autour des paramètres du date commander. Ils empêchent que l’espace entre les paramètres soit interprété comme la fin de la liste de paramètres. Ils s’assurent que les paramètres sont transmis à date correctement.

echo "Logfile started: $(date +'%D %T')" > logfile.txt
cat logfile.txt

Notre fichier journal est créé pour nous et cat nous montre que l’horodatage et l’horodatage y ont tous deux été ajoutés.

C’est le répertoire d’Echo

Une commande simple, mais indispensable. S’il n’existait pas, il faudrait l’inventer.

Les manigances de Zeus ont fait du bien, après tout.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Comment dépanner et recalibrer le Kinect de votre Xbox One

Comment dépanner et recalibrer le Kinect de votre Xbox One

Rappel des messages électroniques dans Outlook 2007

Rappel des messages électroniques dans Outlook 2007