为什么即使没有命令,Bash 也会重定向?

为什么即使没有命令,Bash 也会重定向?

bash手册说,执行扩展后

如果没有命令名结果,则会执行重定向,但不会影响当前的 shell 环境。

现在,这个的用例是什么?如果没有什么可做的,并且重定向甚至不影响当前的 shell 环境,那么重定向有什么意义呢?

答案1

一种用例是创建一个文件(如果该文件不存在):

>> foo

还可以确保文件为空:

> foo

输入重定向可以用作存在测试,但[ -f foo ]效果也一样:

< foo
echo $?

答案2

您始终可以仅使用重定向来创建文件:

> "$some_file"

相关内容