裸 < 起什么作用?

裸 < 起什么作用?

bash如果你运行如下命令,似乎不会抱怨

$ < some-file-that-exists

好像什么也没有发生。

您还可以使用

$ <<<"any string"

甚至工艺替代。

那么这到底有什么用处?为什么允许这样做?这有什么用处吗?

答案1

<为命令设置重定向,该命令可以在重定向指令之前或之后发生。例如

$ < file wc

以及

$ wc < file

但是如果您不给出命令,bash 将设置重定向,而不会执行任何其他操作。对于输入重定向,如果文件存在且可读,则这相当于您看到的,什么也不做。如果文件不存在或不可读,bash 将发出错误信号。对于输出重定向,如果输出文件不存在,则将创建它。如果>使用,任何现有的输出文件都将被截断;如果>>使用,则不会截断。

答案2

< 默认从 stdin 或文件读取。您的表达式对输入不执行任何操作,因为您在读取后没有执行任何操作。

如果您在最后执行<some-file-that-exists> outputfile,那么您将看到您刚刚读入了第一个文件的内容并将其写入第二个文件。

<<< 此处为 doc 格式,因此它从字符串而不是文件读取。cat <<<“any string” 查看您所读到的内容。

相关内容