Bashドキュメント:リダイレクトされた入力と直接入力の比較

Bashドキュメント:リダイレクトされた入力と直接入力の比較
$ cat<<EOF
> a
> EOF
a

stdinを入力するのではなく、自動的にストリームをリダイレクトできますか?私はそれを試しましたが、これは私が得たものです。

[debian:~]$ cat <<(printf "EOF\na\nEOF\n")
-bash: syntax error near unexpected token `('
[debian:~]$ cat <(printf "EOF\na\nEOF\n")
EOF
a
EOF

ベストアンサー1

Here-docは、特定の入力をプログラムの標準入力に渡すための構文です。しかし、それが唯一のものではありません。以下も使用できます。

  • 管路:

    printf "a\n" | cat
    
  • 文字列は次のとおりです。

    cat <<< "a"
    
  • プロセスの置き換え(すでに行ったように):

    cat < <(printf "a\n")
    

(ここの文字列は与えられた文字列の末尾に改行文字を追加します。他の文字列はそうではないので、手動で改行文字を追加しました。printf

EOF文字列を渡すことはcatおそらくあまり役​​に立ちません。これはhere-doc構文の一部にすぎません。

おすすめ記事