2013-08-18 68 views
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 ' 
+0

我不知道我理解你正在試圖做的正是......難道你也許細說什麼?另外,你得到的錯誤是什麼? – Jerry

回答

4

你的問題不是很清楚。但是,在我看來,這是一個shell問題,而不是一個Tcl問題。

我想你的filename是一個Tcl可執行腳本的名稱,你想給它input.txt作爲參數。

但尖括號有特殊含義的外殼。 sh解釋<作爲標準輸入重新定向,所以它讀出的input.txt的內容和通過標準輸入信道將其傳送到filename

然後,sh解釋>作爲標準輸出重定向,但之後就沒有名字輸出重定向到,所以它給你看到錯誤,因爲>後您按下Return關鍵。

所以,你確定你的腳本需要用尖括號括起的名?如果是這樣,逃生支架,像

filename -w \<input.txt\> 

否則,嘗試完全刪除括號並使用

filename -w input.txt 

我希望這有助於。

+1

旁註:TCL的'exec' _cannot_直接喂''作爲參數傳遞給任何程序。這是一種已知的錯誤特性(因爲'exec'試圖看起來像'/ bin/sh'語法,而沒有真正支持它),我們正在修復這個錯誤。 –