2011-10-14 29 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(' 
相关问题