$ cat<<EOF
> a
> EOF
a
我可以自动重定向流而不是输入标准输入吗?我已经尝试过了,但这就是我得到的。
[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 只是将特定输入传递到程序的 stdin 的一种语法。但这并不是唯一的一个。您还可以使用:
管道:
printf "a\n" | cat
这里的字符串:
cat <<< "a"
流程替换(正如您已经所做的那样):
cat < <(printf "a\n")
(请注意,here-string 会在给定字符串的末尾添加换行符。其他字符串不会,所以我使用 手动添加了一个换行符printf
。)
传递EOF
字符串cat
可能不是很有用,它只是here-doc语法的一部分。