当我使用该命令时,cat <<< Hey > text.txt text.txt
我希望它在文件 text.txt 中写入“Hey”,然后显示该文件。但没有任何输出。 bash 实际上是如何解释它的?
命令及其输出:
$ cat <<< Hey > text.txt text.txt
$ cat text.txt
$
答案1
如果您稍微重新安排一下重定向,也许会有意义:
<<< Hey > text.txt cat text.txt
Hey
作为这里字符串发送到 cat 的标准输入。text.txt
被打开以供写入,并被截断。因此,如果其中有任何文字,它就会消失。
cat
使用参数 执行text.txt
。由于文件作为参数提供,因此它忽略标准输入,因此Hey
未使用。text.txt
被截断,因此当cat
运行text.txt
参数时,没有任何内容可输出,因此text.txt
,即通过重定向的标准输出cat
,继续保持为空。