Tag: getopts

可选的参数与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有一个默认值,命令的顺序可以更灵活。

如何在bash中使用getopts的例子

我想以这种方式调用myscript文件: $ ./myscript -s 45 -p any_string 要么 $ ./myscript -h >>> should display help $ ./myscript >>> should display help 我的要求是: getopt在这里获取input参数 检查-s存在,如果不是则返回错误 检查-s之后的值是45还是90 检查-p存在,之后是否有inputstring 如果用户input./myscript -h或只./myscript则显示帮助 我试过这个代码: #!/bin/bash while getopts "h:s:" arg; do case $arg in h) echo "usage" ;; s) strength=$OPTARG echo $strength ;; esac done 但是用这个代码,我得到错误。 如何用Bash和getopt做到这一点?

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

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