LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


commande:echo

La commande echo

Un signe $ précède les commandes qui ne nécessitent pas de droits administrateur ; un signe # précède celles qui nécessitent des droits administrateur (ces signes ne font PAS partie des commandes). Les lignes qui ne commencent pas par un signe $ ou # correspondent au résultat de la commande précédente.
Les touches utilisées sont indiquées entre crochets, exemple [ctrl] pour la touche “contrôle”

Comme de nombreuses commandes basiques, echo peut venir de plusieurs paquets. Elle peut par exemple être incluse dans votre shell (bash par exemple), ou bien venir d'un paquet extérieur (core-utils par exemple), mais grosso modo, elle aura le même comportement dans une utilisation basique.

Utilisation basique

La commande echo permet simplement d'afficher une ligne. Son utilisation est plutôt simple :

$ echo "Ma jolie phrase est belle."

Ceci aura pour conséquence d'afficher sur votre console “Ma jolie phrase est belle.”.

Vous pouvez utiliser les guillemets pour contrôler quelque peu le résultat de cette commande :

  • Avec un guillemet simple de chaque côté du texte, rien ne sera modifié ou interprété par la commande echo :
$ echo 'ca va ? oui !'
ca va ? oui !
  • Avec un guillemet double de chaque côté du texte, le texte sera interprété par la commande echo ou par votre shell, voici ce que j'obtiens (la commande n'arrive même pas à se lancer correctement) :
$ echo "ca va ? oui !"
bash: !": event not found
  • Notez que vous pouvez aussi utiliser la commande sans guillemets, mais d'autres interprétations pourront être effectuées (je rajoute par exemple le caractère * à mon texte, le contenu de mon répertoire sera affiché :
$ echo ca va ? * oui !
ca va ? Desktop Documents fichier1 fichier2 fichier3 oui !

Quelques utilisations pratiques

  • Pour écrire à la fin d'un fichier sans en écraser le contenu, on utilise les signes >> :
$ echo "Ma jolie phrase est belle." >> monfichier
  • Pour écraser un fichier, en effaçant tout son contenu, on utilise le signe > :
$ echo "Ma jolie phrase est belle." > monfichier
  • Si vous utilisez “sudo” pour obtenir les droits root (comme sur ubuntu par exemple), et que vous vouliez utiliser “echo” pour écrire dans un fichier qui appartient à root, vous devrez ruser car le “sudo” ne survivra pas à la redirection. Ça sera plus clair avec un exemple :

Ne fonctionnera PAS :

$ sudo echo 'www.nouveau_dépôt' >> /etc/apt/sources.list

Vous obtiendrez un refus avec “bash: /etc/apt/sources.list: Permission non accordée” comme motif. Pour que ça fonctionne il faut utiliser un autre type de redirection, par exemple avec la commande “tee” qui sert justement à ça.

Vous pouvez utiliser :

$ echo 'www.nouveau_dépôt' | sudo tee -a /etc/apt/sources.list

:!: L'option “-a” indique à “tee” d'ajouter la ligne en fin de fichier, sinon <color red>le comportement par défaut de “tee” est de remplacer le fichier cible</color>. Ne pas l'oublier !

  • Pour écrire plus d'une ligne avec “echo”, vous pouvez utiliser un saut de ligne, noté “\n”. Pour indiquer à “echo” que ce symbole doit être interprété comme un saut de ligne, il faut utiliser l'option “-e” :
$ echo -e '#ceci est un commentaire \nma deuxième ligne' >> /home/tux/test.txt

Vous obtiendrez dans le fichier “/home/tux/test.txt” le résultat suivant:

#ceci est un commentaire
ma deuxième ligne

Pratique pour ajouter une ligne d'option dans un fichier de configuration, et un commentaire explicatif en même temps.

commande/echo.txt · Dernière modification: 2018/11/17 13:52 (modification externe)