Tag: getopt

getopt不parsing参数的可选参数

在C中,getopt_long不parsing命令行参数参数的可选参数。 当我运行该程序时,可选参数不被识别,如下面的示例运行。 $ ./respond –praise John Kudos to John $ ./respond –blame John You suck ! $ ./respond –blame You suck ! 这是testing代码。 #include <stdio.h> #include <getopt.h> int main(int argc, char ** argv ) { int getopt_ret, option_index; static struct option long_options[] = { {"praise", required_argument, 0, 'p'}, {"blame", optional_argument, 0, 'b'}, {0, 0, 0, […]

可选的参数与getopts

while getopts "hd:R:" arg; do case $arg in h) echo "usgae" ;; d) dir=$OPTARG ;; R) if [[ $OPTARG =~ ^[0-9]+$ ]];then level=$OPTARG else level=1 fi ;; \?) echo "WRONG" >&2 ;; esac done level指-R的参数,dir指-d的参数 当我input./count.sh -R 1 -d test/它工作正常 当我input./count.sh -d test/ -R 1它正常工作 但是我想在input./count.sh -d test/ -R或./count.sh -R -d test/ 这意味着我希望-R有一个默认值,命令的顺序可以更灵活。

为什么使用argparse而不是optparse?

我注意到Python 2.7文档还包含另一个命令行parsing模块。 除了getopt和optparse之外,我们现在已经有了argparse 。 为什么还有另一个命令行parsing模块被创build? 为什么我应该使用它而不是optparse ? 是否有我应该知道的新function?

在bash shell脚本中使用getopts来获取长短命令行选项

我希望使用我的shell脚本来调用长短命令行选项。 我知道可以使用getopts ,但是就像在Perl中一样,我还没有能够对shell做同样的事情。 任何想法如何做到这一点,以便我可以使用如下选项: ./shell.sh –copyfile abc.pl /tmp/ ./shell.sh -c abc.pl /tmp/ 在上面,这两个命令对我的shell意味着同样的事情,但使用getopts ,我还没有能够实现这些?