如何在命令行参数中使用尖括号?
假设输入是: 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 '
如何在命令行参数中使用尖括号?
假设输入是: 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 '
你的问题不是很清楚。但是,在我看来,这是一个 shell 问题,而不是 Tcl 问题。
我想你filename
是一个 Tcl 可执行脚本的名称,你想把它input.txt
作为参数。
但是尖括号对外壳有特殊的意义。sh
将 解释<
为标准输入重定向,因此它读取内容input.txt
并将其传递给filename
标准输入通道。
然后,将重定向sh
解释>
为标准输出,但之后没有将输出重定向到的名称,所以它会给你你看到的错误,因为在>
你按下Return
键之后。
那么,您确定您的脚本需要用尖括号括起来的文件名吗?如果是这样,请转义括号,例如
filename -w \<input.txt\>
否则,请尝试完全删除括号并使用
filename -w input.txt
我希望这有帮助。