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 ,