为什么Groovy命令行参数有不同的行为?

时间:2011-10-14 16:54:44

标签: groovy

我有一个名为test.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相同的规则和条件是什么?

提前致谢。

1 个答案:

答案 0 :(得分:4)

你需要将其转义为(在你正在使用的bash shell中有意义。

同样适用于'

尝试其他命令:

ls (

或者

ls '

你会得到同样的效果

另一个选项(除了转义)是将你的参数放在引号字符中,如下所示:

groovy test 'ants('