怎么样'<'在Unix中处理?

时间:2017-04-08 23:18:35

标签: c shell unix io-redirection

我在C中测试argv[]并注意到如果你输入类似

的shell
./program.out <

'<'不是作为参数读取的,而是作为其他内容而且它给我一个错误:

bash: syntax error near unexpected token `newline'

有人可以解释那是什么吗?

1 个答案:

答案 0 :(得分:2)

<>是Bash(以及大多数其他shell)中众多重定向运算符中的两个。它们通过分别将stdin和stdout重定向到源或从源重定向来起作用。当您编写a.out <时,您的shell期望<之后的文件名,即从中读取标准输入的位置。如果没有指定任何内容,shell会遇到尾随的新行和错误。

如果你想传递文字&#39;&lt;&#39;对于您的计划,您需要逃避 - a.out '<'a.out \<

进一步阅读:http://www.tldp.org/LDP/abs/html/io-redirection.html