0

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

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

1 回答 1

5

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

我想你filename是一个 Tcl 可执行脚本的名称,你想把它input.txt作为参数。

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

然后,将重定向sh解释>为标准输出,但之后没有将输出重定向到的名称,所以它会给你你看到的错误,因为在>你按下Return键之后。

那么,您确定您的脚本需要用尖括号括起来的文件名吗?如果是这样,请转义括号,例如

filename -w \<input.txt\>

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

filename -w input.txt

我希望这有帮助。

于 2013-08-18T18:29:14.503 回答