Comment utiliser la commande Echo sous Linux

Contenu

Une fenêtre de terminal Linux sur un bureau sur le thème d'Ubuntu.

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

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

Zeus aimait quitter le mont Olympe pour rejoindre de belles nymphes. En voyage, dit à une nymphe des montagnes nommée Echo que traque sa femme, Héra, si elle le suivait. Héra est venue chercher Zeus, et Echo a fait de son mieux pour garder Hera dans la conversation. Pour terminer, Hera a perdu son sang-froid et a maudit le pauvre Echo de ne répéter que les derniers mots que quelqu'un d'autre avait dit. Ce qu'Héra a fait à Zeus quand elle l'a atteint est à deviner.

Jeter, pratiquement, c'est echobeaucoup dans la vie. Répéter quoi il a été dit de répéter. C'est une fonction simple, mais vital. Sans echo , nous ne pouvions pas obtenir de résultats visibles à partir des scripts shell, par exemple.

Bien qu'il ne soit pas chargé d'une multitude de cloches et de sifflets, il est très probable que echo a des capacités que vous ne connaissiez pas ou que vous aviez oubliées.

éco? éco!

La plupart des systèmes Linux fournissent deux versions de echo. Les Bash coquille Il a son propre echo intégré dedans, et il existe une version exécutable binaire de echo aussi bien que.

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

tapez écho
où est l'écho

Les type la commande nous dit si la commande que nous avons passée comme son argument c'est un shell intégré, un exécutable binaire, un alias ou un rôle. nous informe que echo c'est un shell intégré.

Dès que j'ai trouvé une réponse, type arrêtez de chercher plus de correspondances. Pour cela, il 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 trouve en premier. Et c'est celui qui sera utilisé par défaut lorsque nous lancerons cette commande.

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

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

Pour utiliser cette version de echo vous auriez besoin de l'appeler explicitement en fournissant le chemin d'accès à l'exécutable sur la ligne de commande:

/bin/écho --version

Le shell intégré ne sait pas quoi --version L'argument de la ligne de commande est, il suffit de le répéter dans la fenêtre du terminal:

echo --version

Tous les exemples présentés ici utilisent la version par défaut de echo, dans le shell bash.

Écrire du texte dans le terminal

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

echo Je m'appelle Dave.

Le texte nous est répété. Mais comme vous l'expérimentez, vous découvrirez bientôt que les choses peuvent devenir un peu plus compliquées. Regardez cet exemple:

echo Je m'appelle Dave et je suis un geek.

La fenêtre du terminal affiche un > signe et asseyez-vous là, attendre. Ctrl + C le renverra à l'invite de commande. Que s'est-il passé là-bas?

Le guillemet unique ou l’apostrophe du mot “Suis” confus echo. Interprété cette guillemet simple comme le début d'une section de texte citée. Parce qu'il n'a pas détecté une seule guillemet de clôture, echo j'attendais plus d'informations. Je m'attendais à ce que l'entrée supplémentaire inclue le guillemet simple manquant que j'attendais.

Pour inclure un guillemet simple dans une chaîne, la réponse la plus simple est d'envelopper la chaîne entière entre guillemets doubles:

écho "Je m'appelle Dave et je suis un geek."

Mettre du texte entre guillemets est un bon conseil général. Dans les scripts, délimite clairement les paramètres auxquels vous passez echo. Cela rend la lecture et le débogage des scripts beaucoup plus faciles.

Que faire si vous souhaitez inclure un guillemet double dans votre chaîne de texte? Ça c'est facile, il suffit de mettre une barre oblique inverse devant les guillemets doubles (pas d'espace entre eux).

écho "Je m'appelle Dave et je suis un "geek.""

Cela enveloppe le mot “geek” entre guillemets doubles pour nous. Nous verrons plus de ces barre oblique inverse échappée personnages en bref.

Utiliser des variables avec écho

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

mon_nom="Dave"

Une variable appelée my_name Il a été créé. La valeur du texte lui a été attribuée “Dave”. Nous pouvons utiliser le nom de la variable dans les chaînes que 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 je sais 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. Avoir la variable valeur montré, et pas lui nom de la variable, utiliser des guillemets doubles.

echo 'Mon nom est $mon_nom'
écho "Mon nom est $my_name"

A juste titre, il est important de le répéter:

  • À l'aide de celibataire les guillemets entraînent la saisie du texte dans la fenêtre du terminal dans un littéral Mode.
  • À l'aide de double les guillemets conduisent à l'interprétation de la variable, aussi appelé expansion variable, et la valeur est écrit dans la fenêtre du terminal.

EN RELATION: Comment travailler avec des variables dans Bash

Utiliser les commandes avec echo

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 mettre toute la commande 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 manière, s'il y a un problème avec la syntaxe de votre commande, l'identifie et la corrige avant de l'intégrer dans le echo commander. Ensuite, si il echo la commande ne fait pas ce que vous attendez, Vous saurez que le problème doit venir du echo syntaxe car vous avez déjà testé la syntaxe de la commande.

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

date +%D

Oui, satisfait que nous obtenons ce que nous attendons de la commande date, nous allons l'intégrer dans un echo commander:

écho "La date d'aujourd'hui est: $(date +%D)"

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

Mise en forme du texte d'écho

Les -e L'option (activer les échappements antislash) nous permet d'utiliser des caractères d'échappement de barre oblique inverse pour modifier la disposition du texte. Ce sont les caractères d'échappement de barre oblique inverse que nous pouvons utiliser:

  • une: Alerte (historiquement connu sous le nom de BEL). Cela génère le son d'alerte par défaut.
  • B: Écrire un caractère de retour arrière.
  • C: Renoncez à toute sortie supplémentaire.
  • moi: Ecrire un caractère d'échappement.
  • F: Écrire un caractère de flux de page.
  • Nord: Ecrire une nouvelle ligne.
  • r: Ecrire un retour chariot.
  • t: Écrire une tabulation horizontale.
  • v: Écrire une tabulation verticale.
  • : Tapez une barre oblique inverse.

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

echo -e "Il s'agit d'une longue ligne de texte répartie sur trois lignes avec un onglet sur la troisième ligne"

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 lui n caractères de nouvelle ligne, une bride verticale v déplacer le texte vers la ligne du bas. Mais, contrairement à n caractères de nouvelle ligne, les v l'onglet vertical ne commence pas une nouvelle ligne à la colonne zéro. Utiliser la colonne actuelle.

Les b Les caractères de retour arrière font reculer le curseur d'un caractère. S'il y a plus de texte à écrire dans le terminal, ce texte écrasera le caractère précédent.

echo -e "123b4"

le “3” est écrasé par le “4”.

Les r Causes du caractère retour chariot echo pour revenir au début de la ligne actuelle et taper tout texte supplémentaire à partir de la colonne zéro.

echo -e "123r456"

Caractères “123” sont écrasés par les caractères “456”.

Les a Le caractère d’alerte produira un “siffler” audible. Utiliser le son d'alerte par défaut pour votre thème actuel.

echo -e "Faire un bleepa"

Les -n L'option (pas de nouvelle ligne) pas une séquence d'échappement de barre oblique inverse, mais cela affecte l'apparence de la mise en page du texte, donc nous en discuterons ici. Empêcher echo de l'ajout d'une nouvelle ligne à la fin du texte. L'invite de commande apparaît directement après le texte que vous tapez dans la fenêtre du terminal.

écho -n "pas de nouvelle ligne finale"

Utiliser echo avec des fichiers et des répertoires

Vous pouvez utiliser echo comme une sorte de mauvaise version de ls. Vos options sont rares lorsque vous utilisez echo comme ça. Si vous avez besoin d'une sorte de fidélité ou de contrôle fin, tu ferais mieux d'utiliser ls et votre légion d'options.

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

écho *

cette commande répertorie tous les fichiers et répertoires du répertoire actif dont le nom commence par “ré”:

écho D*

cette commande répertorie tous les fichiers “.Bureau” Nous voulons trouver des fichiers contenant le mot:

echo *.desktop

Oui. Ce n'est pas jouer echoforces. Utilisation ls.

Écrire dans des fichiers avec écho

Nous pouvons rediriger la sortie de echo et créer des fichiers texte ou écrire 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, écraser 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 pas le contenu existant du fichier.

écho "Création d'un nouveau fichier." > exemple.txt
écho "Ajout au fichier." >> exemple.txt
exemple de chat.txt

La première commande crée un nouveau fichier et y insère du texte. La deuxième commande ajoute une ligne de texte à la fin du fichier. Les cat La commande affiche le contenu du fichier dans la fenêtre du terminal.

Oui, depuis lors, nous pouvons inclure des variables pour ajouter des informations utiles à notre fichier. Si le fichier est un fichier journal, nous pouvons vouloir qu'un horodatage y soit ajouté. Nous pouvons le faire avec la commande suivante.

Notez les guillemets simples autour des paramètres pour le date commander. Ils évitent que l'espace entre les paramètres soit interprété comme la fin de la liste des paramètres. Ils assurent que les paramètres sont passés à date correctement.

écho "Fichier journal démarré: $(date +'%D %T')" > fichier journal.txt
chat logfile.txt

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

EN RELATION: Qu'est-ce que stdin, stdout et stderr sous Linux?

C'est le répertoire de l'écho

Une simple commande, mais indispensable. Si je n'existe pas, il faudrait l'inventer.

Les bouffonneries de Zeus ont fait quelque chose de bien, après tout.

setTimeout(fonction(){
!fonction(F,b,e,v,m,t,s)
{si(f.fbq)revenir;n=f.fbq=fonction(){n.callMethod?
n.callMethod.apply(m,arguments):n.queue.push(arguments)};
si(!f._fbq)f._fbq=n;n.push=n;n.chargé=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertAvant(t,s) } (window, document,'scénario',
'https://connect.facebook.net/en_US/fbevents.js’);
fbq('init', « 335401813750447 »);
fbq('Piste', « Page View »);
},3000);

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.