2

友達、で

gnu.getopt.Getopt.jar

オプションの引数として b* を指定すると、問題が発生します。

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;
    }
}

return と指定-p "b*"するとbin、なぜこれが起こっているのですか?

4

1 に答える 1

1

シェル (Linux を使用していると思われますよね?) は、b*リテラルをbin(現在の作業ディレクトリに名前の付いたディレクトリが存在する必要があります) に解決します。これは、ワイルドカードbinとして扱われるためです。

使用するシェルによっては、アスタリスクをエスケープする必要があります...たとえば、bashでは、使用します

-p b\*

シェルによって解決されるのではなく、アスタリスクになるようにエスケープするには

于 2013-10-01T11:41:23.717 に答える