2011-10-14 28 views
0

我有一個名爲test.groovy Groovy文件並在它編碼的單行:爲什麼使用Groovy命令行參數有不同的行爲?

println args[0]; 

,當我運行這個程序是這樣groovy test ants,輸出ants

但是當我運行該程序的說法ants(然後我得到的錯誤是這樣的:

bash: syntax error near unexpected token (

1)如果我逃跑的字符(然後我得到的輸出爲ants(。但爲什麼(需要逃脫?

當我的說法ant's運行該程序,然後單擊輸入將使我的終端是這樣的:

> 
> 
> 

2)我只終止使用ctrl+c程序。在這種情況下究竟發生了什麼?爲什麼我的終端是這樣的?

3)看到這些之後,Groovy中遵循的命令行參數和相同的Java保留條件將遵循哪些規則和條件?

在此先感謝。

+2

猛砸是解析這些選項,而不是常規。用'echo'替換'groovy test',你會得到相同的結果。 – ataylor

回答

4

你需要逃脫它(在bash shell的意義,你正在使用

這同樣適用於「

嘗試其他命令:

ls (

或者

ls ' 

你會得到同樣的效果

另一種選擇(不是逃避其他)是把你的參數報價字符內,像這樣:

groovy test 'ants(' 
相關問題