如何在命令行参数中使用尖括号?
假设输入为:filename -w <input.txt>
这里input.txt
是第二个命令行参数,它是程序的输入文件,input.txt必须用尖括号(<input.txt>
)括起来。但如果我使用尖括号,我会收到错误。错误是:
sh: -c: line 0: syntax error near unexpected token `newline'
sh: -c: line 0: `demo -w '
答案 0 :(得分:4)
你的问题不是很清楚。但是,在我看来,这是一个shell问题,而不是Tcl问题。
我认为您的filename
是Tcl可执行脚本的名称,并且您希望将其作为参数input.txt
。
但是尖括号对shell有特殊意义。 sh
将<
解释为标准输入重定向,因此它会读取input.txt
的内容并通过标准输入渠道将其传递给filename
。
然后,sh
将>
解释为标准输出重定向,但之后没有名称将输出重定向到,因此它会给出您看到的错误,因为在{{1}之后你按了>
键。
那么,你确定你的脚本需要尖括号包围的文件名吗?如果是这样,请转义括号,如
Return
否则,尝试完全删除括号并使用
filename -w \<input.txt\>
我希望这会有所帮助。