【发布时间】:2014-06-25 17:23:45
【问题描述】:
在 shell 中使用星号作为 Java 命令行参数时遇到问题。 我可以将这个问题的描述简化如下:
首先,有一个简单的 java 程序可以打印命令行参数。
public class CmdArgsTest
{
public static void main(String[] args)
{
for(String arg : args)
{
System.out.println(arg);
}
}
}
当我在shell命令中输入:Java CmdArgsTest "s*";
它不会打印“s*”,而是当前目录下的所有文件名。
我已经在论坛中搜索过类似的问题,并尝试使用单引号's*'或反斜杠's/*',但都不起作用。
希望有人可以帮助我。感谢您的帮助。
顺便说一句:感谢 Elliott Frisch 的提醒,我在 Cygwin 上试过这个例子,我不知道它是否重要
【问题讨论】:
-
尝试“S\\*”。它应该可以工作。
-
不是所有文件,只有以
s开头的文件。 -
$ java CmdArgsTest 's\*',它也不起作用。正则表达式:“s\*”
-
是的,不是所有文件,只有以 s 或 S 开头的文件