小编psy*_*kid的帖子

复制变量的值而不是引用bash脚本

我对bash脚本有点新鲜.所以请耐心等待.我正在尝试创建一个表并在for循环中分配值,如下所示:

packages=("foo" "bar" "foobar")
packageMap=()
function test() {
    i=0;
    for package in "${packages[@]}"
    do
        echo $i
        packageMap[$package]=$i
        i=$(expr $i + 1)
    done
}

test
echo the first value is ${packageMap["foo"]}
Run Code Online (Sandbox Code Playgroud)

这个输出是:

0
1
2
the first value is 2
Run Code Online (Sandbox Code Playgroud)

虽然我的预期输出是:

0
1
2
the first value is 0
Run Code Online (Sandbox Code Playgroud)

所以基本上变量的引用被分配给它而不是值.怎么解决这个?

我的bash版本:

GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin16)
Run Code Online (Sandbox Code Playgroud)

TIA

bash shell

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

标签 统计

bash ×1

shell ×1