为什么输入重定向在命令替换时的工作方式不同?
考虑以下情况:为什么输入重定向在命令替换时的工作方式不同?
$ echo "abc" > file $ var=$(< file)
$ echo "$var"
abc
里面的命令替换,我们使用重定向和一个文件,并且该文件的内容被正确地由可变捕获。
然而,所有以下实施例中没有产生输出:
$ < file $ < file | cat
$ <file> file2
$ cat file2
在所有这些情况下,命令的内容不重定向到输出。
那么,为什么当重定向放置在命令替换内部时会有区别?在命令替换块内部和外部,重定向有不同的功能吗?
回答:
$(< file)
不是重定向;它只是一个命令替换的特例,它使用与输入重定向相同的语法。
通常,输入重定向必须与命令关联。还有就是可以说是可以考虑的例外一种情况下,这是
$ > file
这不是技术上重定向,因为没有被重定向到文件,但file
仍然写模式,这截断开它到0字节。
以上是 为什么输入重定向在命令替换时的工作方式不同? 的全部内容, 来源链接: utcz.com/qa/257289.html