如何在命令行参数中使用尖括号?

时间:2013-08-18 13:30:46

标签: tcl

如何在命令行参数中使用尖括号?

假设输入为: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 '

1 个答案:

答案 0 :(得分:4)

你的问题不是很清楚。但是,在我看来,这是一个shell问题,而不是Tcl问题。

我认为您的filename是Tcl可执行脚本的名称,并且您希望将其作为参数input.txt

但是尖括号对shell有特殊意义。 sh<解释为标准输入重定向,因此它会读取input.txt的内容并通过标准输入渠道将其传递给filename

然后,sh>解释为标准输出重定向,但之后没有名称将输出重定向到,因此它会给出您看到的错误,因为在{{1}之后你按了>键。

那么,你确定你的脚本需要尖括号包围的文件名吗?如果是这样,请转义括号,如

Return

否则,尝试完全删除括号并使用

filename -w \<input.txt\>

我希望这会有所帮助。