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

发布于 2024-12-09 18:47:24 字数 594 浏览 0 评论 0原文

我有一个名为 test.groovy 的 groovy 文件,其中有一行代码:

println args[0];

当我像 groovy test ants 一样运行这个程序时,输出是 ants

但是,当我使用参数 ants( 运行程序时,我会收到如下错误:

bash: 意外标记附近的语法错误 (

1)如果我转义字符 < code>( 然后我得到的输出为 ants(。但是为什么 ( 需要转义?

当我使用参数运行程序时ant's,然后单击 Enter 将使我的终端看起来像这:

>
>
>

2)我只使用ctrl+c终止程序。为什么我的终端看起来像这样?

3)看到这些之后,规则和条件是什么?在 Groovy 中遵循命令行参数,对于 Java 也同样如此?

提前致谢。

I have a groovy file named test.groovy and have a single line of coding in it :

println args[0];

when I run this program like this groovy test ants, output is ants.

But when I run the program with the argument ants( then I'm getting error like this :

bash: syntax error near unexpected token (

1)If I escape the character ( then I'm getting the output as ants(. But why ( is needed to be escaped?

And when I run the program with the argument ant's, then clicking enter would make my terminal look like this :

>
>
>

2)And I terminate the program only using ctrl+c. What actually happens in this case? Why my terminal look like this?

3)After seeing these, what are the rules and condition that are to be followed in Groovy with accordance with Command-line arguments and the same holds for Java?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

郁金香雨 2024-12-16 18:47:24

您需要转义它,因为 ( 在您正在使用的 bash shell 中具有含义。

也是如此

'尝试其他命令

ls (

:或者

ls '

您会得到相同的效果

另一个选项(除了转义之外)是将您的参数放在引号内像这样的字符:

groovy test 'ants('

You need to escape it as ( has a meaning in the bash shell which you are using.

The same goes for '

Try other commands:

ls (

Or

ls '

You'll get the same effect

Another option (other than escaping) is to put your arguments inside quote chars like so:

groovy test 'ants('
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文