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