# Commande echo sous Linux : explications

Les **[distributions Linux](https://www.ionos.fr/digitalguide/serveur/know-how/linux-une-alternative-a-windows/)** vous permettent de configurer et de gérer seul votre système. La **commande Bash echo** compte parmi les commandes les plus fréquemment utilisées. Elle est utile dans les scripts Bash et les fichiers batch, où elle **affiche le texte de statut dans un fichier ou sur votre écran**. Nous allons vous expliquer comment fonctionne la commande echo sous Linux et comment elle peut vous aider, par exemple, à déterminer les couleurs du texte et de l’arrière-plan.

## Qu’est-ce que la commande echo de Linux et comment fonctionne-t-elle ?

La commande echo de Linux répète simplement ce que vous lui demandez de répéter. Il s’agit d’une fonction extrêmement simple, mais absolument nécessaire pour ce genre d’actions. Sans *echo*, vous ne pourriez obtenir aucune **sortie visible** de vos scripts shell, par exemple. Shell correspond à l’interface utilisateur dans laquelle vous pouvez saisir diverses commandes, comme la [commande tail de Linux](https://www.ionos.fr/digitalguide/serveur/configuration/commande-tail-de-linux/ "Commande&nbsp;tail de Linux"), la [commande head de Linux](https://www.ionos.fr/digitalguide/serveur/configuration/commande-head-de-linux/ "Commande head de Linux"), la [commande cat de Linux](https://www.ionos.fr/digitalguide/serveur/configuration/commande-cat-de-linux/ "Commande cat de Linux") ou encore la commande echo.

Quel est le fonctionnement exact de la commande echo de Linux et quelle est sa syntaxe ? Voici la syntaxe générale de cette commande :

```none
echo [option] [string]
```

Le fonctionnement de base d’*echo* est d’ailleurs le même dans tous les langages de programmation : vous effectuez une entrée (qui prend, dans la plupart des cas, la forme d’une chaîne de caractères), celle-ci est acceptée et reste inchangée à sa sortie.

---

### Note

L’interface utilisateur ou le script **shell** (interpréteur de ligne de commande) est également appelé un shell Bash. Le Bash correspond aux scripts shell standard dans les distributions Linux, et donc à la fenêtre de texte dans laquelle vous saisissez vos commandes. Le programme *echo* constitue l’un des éléments fondamentaux d’Ubuntu ; il est d’ailleurs préinstallé sur chaque système.

---

## Comment la commande echo de Linux affiche-t-elle le texte et les informations ?

Pour notre premier exemple, nous souhaiterions afficher du texte et le contenu des variables dans le Bash ou le terminal. Pour écrire le texte « Ceci est un exemple », renseignez le code suivant dans le terminal :

```none
$ echo Ceci est un exemple
Ceci est un exemple
```

Pour éviter autant que possible les erreurs, nous vous conseillons de placer le texte entre guillemets :

```none
$ echo "Ceci est un exemple"
Ceci est un exemple
```

Pour l’étape suivante, nous aimerions afficher une variable. Il suffit ici de renseigner le nom de la variable, par exemple PWD (pour « *Print Working Directory* », qui signifie « impression du répertoire de travail »). Voici à quoi ressemblerait une telle commande :

```none
$ echo $PWD 
/Users/Name/Desktop
```

Vous avez également la possibilité de combiner la sortie des variables avec du texte, comme dans l’exemple ci-dessous :

```none
$ echo "Vous êtes dans le répertoire : $PWD" 
Vous êtes dans le répertoire : /Users/Name/Desktop
```

---

### Note

Outre la commande Bash echo, *printf* et *tput* permettent également d’afficher des informations. **tput** est l’outil le plus complexe, mais peut également servir à réinitialiser ces informations. À l’inverse, avec **printf** et **echo**, les informations peuvent seulement être affichées.

---

## Quels sont les caractères de commande disponibles pour echo ?

Maintenant que nous avons compris le principe de base de la commande echo, vous allez découvrir les caractères de commande que vous pouvez utiliser en combinaison avec celle-ci. Les caractères de commande ne sont pas directement visibles à l’écran, mais ils déterminent des éléments comme le début ou la fin du texte, ou encore les retours à la ligne.

Attention : *echo* ne comprend les caractères de commande que si vous définissez l’option **-e**. Dans l’exemple suivant, "\\ n" n’est donc affiché que sous forme de texte (le caractère de contrôle "\\ n" signale un **saut de ligne** ou un **retour automatique à la ligne**).

```none
$ echo "\n"
\n
```

Si vous ajoutez un **-e**, comme dans l’exemple suivant, cela a en réalité pour effet d’ajouter un retour automatique à la ligne dans votre texte:

```none
$ echo -e "\n"
```

Note Par défaut, la commande echo se termine par un retour à la ligne. Si vous souhaitez le supprimer, vous pouvez ajouter le caractère de commande "\\c" à la fin de la sortie correspondante.

Voici un aperçu des caractères de commande disponibles dans Bash :

<table>
  <tbody>
    <tr>
      <td><strong>Codes d’échappement</strong></td>
      <td><strong>Signification</strong></td>
    </tr>
    <tr>
      <td>\\a</td>
      <td>Signal d’alarme</td>
    </tr>
    <tr>
      <td>\\b</td>
      <td>Retour d’un caractère</td>
    </tr>
    <tr>
      <td>\\c</td>
      <td>Supprimer le retour automatique à la ligne</td>
    </tr>
    <tr>
      <td>\\f</td>
      <td>Retour</td>
    </tr>
    <tr>
      <td>\\n</td>
      <td>Retour à la ligne</td>
    </tr>
    <tr>
      <td>\\r</td>
      <td>Retour au début de la ligne</td>
    </tr>
    <tr>
      <td>\\t</td>
      <td>Tabulation (horizontale)</td>
    </tr>
    <tr>
      <td>\\v</td>
      <td>Tabulation (verticale)</td>
    </tr>
    <tr>
      <td>\\\\</td>
      <td>Affichage du caractère backslash</td>
    </tr>
    <tr>
      <td>\\0nnn</td>
      <td>[Caractères ACSII](https://www.ionos.fr/digitalguide/serveur/know-how/ascii-american-standard-code-for-information-interchange/) sous forme octale (sh et ksk uniquement)</td>
    </tr>
    <tr>
      <td>\\nnn</td>
      <td>Caractères ACSII sous forme octale (Bash uniquement)</td>
    </tr>
  </tbody>
</table>

## Comment déterminer les couleurs du texte et de l’arrière-plan avec echo ?

Avec la commande echo de Linux, les attributs du texte tels que les couleurs de la police et de l’arrière-plan peuvent aussi être déterminés au moment de la publication de celui-ci. Pour que cela fonctionne, tous les caractères doivent être mis entre guillemets, ou les couleurs doivent être écrites sous forme de variables afin que la chaîne soit plus lisible. La première variable ressemble à ce qui suit (une couleur est toujours introduite par \\033\[, et 31m correspond ici à la couleur de police rouge) :

```none
$ echo -e "\033[31mC‘estuntexterouge"
```

Si vous souhaitez réinitialiser tous les attributs, saisissez la chaîne suivante :

```none
$ echo -e "\033[0m"
```

Toutefois, si vous souhaitez un résultat plus lisible, vous pouvez définir au préalable les couleurs comme variables dans votre script Bash :

```none
red=’\033[31m’
reset=’\033[0m’
```

Ensuite, il vous suffit d’appeler la couleur en tant que commande echo :

```none
$ echo -e "${red}C’est un texte rouge.${reset}Maintenant le texte est de nouveau normal."
```

Le tableau ci-dessous vous donne un aperçu des codes d’échappement pour les différentes couleurs de police et d’arrière-plan :

<table>
  <tbody>
    <tr>
      <td><strong>Caractères de commande</strong></td>
      <td><strong>Signification</strong></td>
    </tr>
    <tr>
      <td>\\033\[30m</td>
      <td>Couleur de police noire</td>
    </tr>
    <tr>
      <td>\\033\[31m</td>
      <td>Couleur de police rouge</td>
    </tr>
    <tr>
      <td>\\033\[32m</td>
      <td>Couleur de police verte</td>
    </tr>
    <tr>
      <td>\\033\[33m</td>
      <td>Couleur de police jaune</td>
    </tr>
    <tr>
      <td>\\033\[34m</td>
      <td>Couleur de police bleue</td>
    </tr>
    <tr>
      <td>\\033\[35m</td>
      <td>Couleur de police magenta</td>
    </tr>
    <tr>
      <td>\\033\[36m</td>
      <td>Couleur de police turquoise</td>
    </tr>
    <tr>
      <td>\\033\[37m</td>
      <td>Couleur de police blanche</td>
    </tr>
    <tr>
      <td>\\033\[40m</td>
      <td>Arrière-plan noir</td>
    </tr>
    <tr>
      <td>\\033\[41m</td>
      <td>Arrière-plan rouge</td>
    </tr>
    <tr>
      <td>\\033\[42m</td>
      <td>Arrière-plan vert</td>
    </tr>
    <tr>
      <td>\\033\[43m</td>
      <td>Arrière-plan jaune</td>
    </tr>
    <tr>
      <td>\\033\[44m</td>
      <td>Arrière-plan bleu</td>
    </tr>
    <tr>
      <td>\\033\[45m</td>
      <td>Arrière-plan magenta</td>
    </tr>
    <tr>
      <td>\\033\[46m</td>
      <td>Arrière-plan turquoise</td>
    </tr>
    <tr>
      <td>\\033\[47m</td>
      <td>Arrière-plan gris</td>
    </tr>
  </tbody>
</table>

## Comment définir certaines propriétés de texte avec echo ?

Outre la couleur de la police et de l’arrière-plan, vous pouvez aussi utiliser la commande echo sous Linux pour déterminer des attributs de texte tels que les caractères gras ou soulignés. Voici les codes de ces différentes propriétés textuelles :

<table>
  <tbody>
    <tr>
      <td><strong>Caractères de commande</strong></td>
      <td><strong>Signification</strong></td>
    </tr>
    <tr>
      <td>\\033\[0m</td>
      <td>Réinitialiser tous les attributs</td>
    </tr>
    <tr>
      <td>\\033\[1m</td>
      <td>Mise en caractères gras</td>
    </tr>
    <tr>
      <td>\\033\[4m</td>
      <td>Mise en caractères soulignés</td>
    </tr>
    <tr>
      <td>\\033\[5m</td>
      <td>Faire clignoter</td>
    </tr>
    <tr>
      <td>\\033\[7m</td>
      <td>Représentation inversée</td>
    </tr>
  </tbody>
</table>

Si vous souhaitez par exemple mettre votre texte rouge en gras, voici le code à utiliser :

```none
$ echo -e "\033[1;31mC’est un texte rouge en gras."
```

---

### Conseil

Pour vous, nous avons également élaboré une présentation de toutes les principales [commandes Linux](https://www.ionos.fr/digitalguide/serveur/configuration/commandes-linux/).

---


This is a markdown version of: [https://www.ionos.fr/digitalguide/serveur/configuration/commande-echo-sous-linux/](https://www.ionos.fr/digitalguide/serveur/configuration/commande-echo-sous-linux/) for AI/LLM consumption.