J'ai un fichier nommé my_file.txt
dont le contenu est juste la chaîne Hello
. Comment pourrais-je rediriger son contenu vers la commande echo
?
Je sais que j'ai les commandes less
, cat
, more
… mais je dois le faire avec echo
.
J'ai essayé ceci :
$ cat my_file.txt | echo
et aussi ceci :
$ echo < my_file.txt
Mais dans les deux cas, il n'apparaît qu'un blanc dans le stdout, pas le contenu de my_file.txt.
Comment pourrais-je faire ça ?
Réponse acceptée :
Vous pouvez rediriger tout ce que vous voulez vers echo
mais ça ne fera rien avec. echo
ne lit pas son entrée standard. Tout ce qu'il fait est d'écrire sur la sortie standard ses arguments séparés par un espace et terminés par un caractère de saut de ligne (et avec quelques echo
implémentations avec des séquences d'échappement développées et/ou des arguments commençant par -
éventuellement traités comme des options).
Si vous voulez echo
pour afficher le contenu d'un fichier, vous devez passer ce contenu en argument à echo
. Quelque chose comme :
echo "$(cat my_file.txt)"
Notez que $(...)
supprime le caractère de fin de lignes à partir de la sortie de ce cat
commande et echo
ajoute un retour.
Notez également que sauf avec zsh
, vous ne pouvez pas passer de caractères NUL dans les arguments d'une commande, de sorte que ce qui précède ne fonctionnera généralement pas avec les fichiers binaires. yash
supprimera également les octets qui ne font pas partie des caractères valides.
Si la raison de vouloir faire cela est parce que vous voulez echo
pour développer le n
, b
,