my_file.txt
という名前のファイルがあります その内容は文字列Hello
。そのコンテンツをコマンドecho
にリダイレクトするにはどうすればよいですか。 ?
less
というコマンドがあることはわかっています 、cat
、more
…でも、echo
でやる必要があります 。
私はこれを試しました:
$ cat my_file.txt | echo
そしてこれも:
$ echo < my_file.txt
ただし、どちらの場合も、my_file.txtのコンテンツではなく、stdoutに空白のみが表示されます。
どうすればそれができますか?
承認された回答:
必要なものをすべてecho
にリダイレクトできます しかし、それでは何もしません。 echo
標準入力を読み取りません。 引数を標準出力に書き込むだけです。 スペース文字で区切られ、改行文字で終了します(およびecho
で終了します いくつかのエスケープシーケンスが展開されている実装や、-
で始まる引数 オプションとして扱われる可能性があります。
echo
が必要な場合 ファイルのコンテンツを表示するには、そのコンテンツを引数としてecho
に渡す必要があります 。次のようなもの:
echo "$(cat my_file.txt)"
$(...)
に注意してください 末尾の改行文字を削除しますs そのcat
の出力から コマンド、およびecho
1つを追加します 戻る。
zsh
を除いても注意してください 、コマンドの引数にNUL文字を渡すことはできないため、上記は通常、バイナリファイルでは機能しません。 yash
有効な文字の一部を構成しないバイトも削除されます。
それをしたい理由がecho
が欲しいからだとしたら n
を展開するには 、b
、