我在C中测试argv[]
并注意到如果你输入类似
./program.out <
'<
'不是作为参数读取的,而是作为其他内容而且它给我一个错误:
bash: syntax error near unexpected token `newline'
有人可以解释那是什么吗?
答案 0 :(得分:2)
<
和>
是Bash(以及大多数其他shell)中众多重定向运算符中的两个。它们通过分别将stdin和stdout重定向到源或从源重定向来起作用。当您编写a.out <
时,您的shell期望<
之后的文件名,即从中读取标准输入的位置。如果没有指定任何内容,shell会遇到尾随的新行和错误。
如果你想传递文字&#39;&lt;&#39;对于您的计划,您需要逃避 - a.out '<'
或a.out \<
。