Ich habe eine Datei namens my_file.txt
dessen Inhalt nur die Zeichenfolge Hello
ist . Wie könnte ich seinen Inhalt auf den Befehl echo
umleiten ?
Ich weiß, dass ich die Befehle less
habe , cat
, more
… aber ich muss es mit echo
machen .
Ich habe das versucht:
$ cat my_file.txt | echo
und auch das:
$ echo < my_file.txt
Aber in beiden Fällen erscheint nur ein Leerzeichen in der Standardausgabe, nicht der Inhalt von my_file.txt.
Wie könnte ich das tun?
Akzeptierte Antwort:
Sie können alles, was Sie möchten, auf echo
umleiten aber damit wird es nichts. echo
liest seine Standardeingabe nicht. Es schreibt lediglich seine Argumente in die Standardausgabe durch ein Leerzeichen getrennt und durch ein Zeilenumbruchzeichen abgeschlossen (und mit etwas echo
Implementierungen mit einigen erweiterten Escape-Sequenzen und/oder Argumenten, die mit -
beginnen möglicherweise als Optionen behandelt).
Wenn Sie echo
möchten Um den Inhalt einer Datei anzuzeigen, müssen Sie diesen Inhalt als Argument an echo
übergeben . Etwas wie:
echo "$(cat my_file.txt)"
Beachten Sie, dass $(...)
entfernt die abschließenden Newline-Zeichens aus der Ausgabe dieser cat
Befehl und echo
fügt eins hinzu zurück.
Beachten Sie auch, dass außer mit zsh
, können Sie keine NUL-Zeichen in den Argumenten eines Befehls übergeben, sodass Obiges normalerweise nicht mit Binärdateien funktioniert. yash
entfernt auch Bytes, die nicht Teil gültiger Zeichen sind.
Wenn der Grund dafür ist, dass Sie echo
wollen um das n
zu erweitern , b
,