2

朋友们,在

gnu.getopt.Getopt.jar

当我将 b* 作为选项参数时,我遇到了一些问题,然后它被当作 bin

Getopt g = new Getopt("cm_log_parser", args, "i:s"); //-D to enable debug log


while((opt = g.getopt()) != -1)
{
    switch (opt)
    {
        case 'f'://To set file name(if above is not specified)
            fileNameWithPath = getAndCheckOptArg(fFlag, opt, g);
            fFlag = true;
            break;

        case 'p'://To set the pattern
            String pattern = g.getOptarg();
            hFlag = true;
            break;

        case '?':
            usage("Invalid option" + opt + " option");
            break;
    }
}

当我指定-p "b*"它是返回时bin,为什么会这样?

4

1 回答 1

1

b*shell(我怀疑你使用Linux,对吗?)将文字解析为bin(当前工作目录中必须有一个名为bin的目录),因为它被视为通配符

根据您使用的外壳,您必须转义星号...例如在 bash 中,使用

-p b\*

将其转义为星号,而不是由 shell 解决

于 2013-10-01T11:41:23.717 回答