2

我必须给出“-”作为选项参数

Getopt 类

我的代码如下

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 's'://To set the header
            String separator = getAndCheckOptArg(hFlag, opt, g);
            hFlag = true;
            breakk;
        case '?':
            usage("Invalid option" + opt + " option");
            break;
    }
}

在我想作为-s“-”给出的参数中,但它显示了一些错误,如无效选项有什么办法吗?

4

2 回答 2

1

--Getopt中具有特殊的含义

用户可以使用特殊参数“--”强制 getopt()停止扫描命令行。任何出现在“--”之前的元素都会被正常扫描和排列。“--”之后的任何元素都按原样作为非选项 argv 元素返回。例如,“foo -a -- bar -d”将返回选项 'a' 然后 -1。optind 将指向“foo”、“bar”和“-d”作为非选项 argv 元素。"--" 被 getopt() 丢弃。

所以我担心你无法做到这一点。

于 2013-09-25T14:10:34.567 回答
0

您可能可以使用-s-(无空格)来执行此操作。我不知道 Getopt 是否允许这样做。

于 2013-09-25T15:14:39.793 回答