Différence entre 'echo' et 'echo -e' [fermé]

25

Quelle est la difference entre echoet echo -e? Quels guillemets ("" ou '') doivent être utilisés avec la commande echo? c'est-à-dire: echo "Print statement"ou echo 'Print statement'? De plus, quelles sont les options disponibles qui peuvent être utilisées avec echo?

Venkatesh
la source
3
Quelle coquille? echo -en'est pas défini par POSIX et varie probablement selon le shell.
jordanm
Est-ce que cela répond à votre question? unix.stackexchange.com/questions/65803/…
dhag
2
utiliser man echopour lire le manuel de echo.
nounou
echo n'exécute pas ses arguments sous forme de commandes, il les fait juste échos
Anthon

Réponses:

33

echoaffiche à lui seul une ligne de texte. Il prendra n'importe quoi entre les "..."deux guillemets suivants , littéralement, et l'imprimera tel quel. Cependant avec echo -evous faites echopour permettre d'interpréter les échappements de barre oblique inverse. Donc, avec cela à l'esprit, voici quelques exemples

INPUT: echo "abc\n def \nghi" 
OUTPUT:abc\n def \nghi

INPUT: echo -e "abc\n def \nghi"
OUTPUT:abc
 def 
ghi

Remarque: \nest une nouvelle ligne, c'est-à-dire un retour chariot. Si vous voulez savoir quelles autres séquences sont reconnues par echo -etype dans man echovotre terminal.

3kstc
la source
2
echoest intégré dans la plupart des coquilles. aimera plutôt man echodocumenter la echocommande autonome.
Stéphane Chazelas
Vous décrivez le comportement de GNU echoou du shell GNU echolorsqu'il n'est pas en mode de conformité Unix. Ailleurs, le comportement sera généralement différent.
Stéphane Chazelas
3

Dans la plupart des SHELL, je echone peux pas prendre la séquence d'échappement ( \n \t). Où le echo -epeut

echo -e " This is \n an \t example"

Les guillemets simples et doubles servent principalement à gérer les problèmes d'interpolation. Vous pouvez trouver plus de détails ici, pourquoi l'écho ignore-t-il mes caractères de citation?

Govind Kailas
la source
C'est l'inverse. Dans la plupart des shells (ksh88, ksh93, pdksh, mksh, Bourne, zsh, dash, bash et sh de tous les systèmes compatibles Unix, certains d'entre eux comme ksh93 ou bash uniquement dans certains environnements) echoétendent les séquences d'échappement. Une echoimplémentation qui accepte -en'est pas compatible POSIX.
Stéphane Chazelas