相关疑难解决方法(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万
查看次数

如何将关联数组作为参数传递给Bash中的函数?

如何将关联数组作为参数传递给函数?这在巴什有可能吗?

以下代码未按预期工作:

function iterateArray
{
    local ADATA="${@}"            # associative array

for key in "${!ADATA[@]}"
do
    echo "key - ${key}"
    echo "value: ${ADATA[$key]}"

done

}
Run Code Online (Sandbox Code Playgroud)

将关联数组传递给像普通数组这样的函数不起作用:

iterateArray "$A_DATA"
Run Code Online (Sandbox Code Playgroud)

要么

iterateArray "$A_DATA[@]"
Run Code Online (Sandbox Code Playgroud)

arrays bash associative-array associative

36
推荐指数
5
解决办法
2万
查看次数

为shell脚本指定名称=值对等命令行参数

是否可以将命令行参数作为名称值对传递给shell脚本,例如

myscript action=build module=core
Run Code Online (Sandbox Code Playgroud)

然后在我的脚本中,获取变量 $action并处理它?

我知道$ 1 ....等等可以用来获取变量,但是不会像对子那样是名称值.即使它们是,但使用该脚本的开发人员必须负责以相同的顺序声明变量.我不要那个.

shell tcsh

5
推荐指数
2
解决办法
1万
查看次数