相关疑难解决方法(0)

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

我希望使用我的shell脚本调用多种形式的命令行选项.

我知道getopts可以使用,但就像在Perl中一样,我无法对shell做同样的事情.

关于如何做到这一点的任何想法,以便我可以使用如下选项:

./shell.sh --copyfile abc.pl /tmp/
./shell.sh -c abc.pl /tmp/
Run Code Online (Sandbox Code Playgroud)

在上面,两个命令对我的shell意味着相同的东西,但使用getopts,我还没有能够实现这些?

bash getopt getopts command-line-arguments

390
推荐指数
17
解决办法
39万
查看次数

$ @中args的bash参数案例

我有一个包含很多OPTIONAL参数的脚本.一些有相关的价值观.

如:

.script --first 2012-12-25 --last 2012-12-26 --copy --remove
.script --first 2012-12-25 
Run Code Online (Sandbox Code Playgroud)

因此以下案例陈述:

for arg in "$@"
do
    case $arg in
        "--first" )
           START_DATE=$arg;;
        "--last" )
           END_DATE=$arg;;
        "--copy" )
           COPY=true;;
        "--remove" )
           REMOVE=true;;

# ... and so on
   esac
done
Run Code Online (Sandbox Code Playgroud)

我的问题:

需要增量$arg+1类型语句来获取以下arg(在某些情况下).

怎么可能?

我也很乐意做一个子串 .script --first2012-12-25 --last2012-12-26

而不知道如何继续前进.

bash shell

17
推荐指数
2
解决办法
3万
查看次数

标签 统计

bash ×2

command-line-arguments ×1

getopt ×1

getopts ×1

shell ×1