我对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