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