这个命令到底发生了什么?

这个命令到底发生了什么?

当我使用该命令时,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,继续保持为空。

相关内容