2012-11-24 84 views
0

我可以发誓这是 - 只是 - 工作正常。现在我不知道为什么我会收到我收到的错误。关联数组键中的未绑定变量

这里是我的脚本:

115: echo "file is $file" 
116: echo "key is $key" 
117: if [[ ! ${stats["$file-$key"]:-} ]]; then 
118:  stats["$file-$key"]=0 
119:  echo "set stats[$file-$key] to 0" 
120:  echo "$file-$key" 
121:  echo "stats is ${stats["$file-$key"]}" 
122: fi 
123: stats["$file-$key"]=$((value + stats["$file-$key"])) 

这里是我的输出:

file is test1 
    key is key1 
    set stats[test1-key1] to 0 
    test1-key1 
    stats is 0 
    file is test1 
    key is key2 
    set stats[test1-key2] to 0 
    test1-key2 
    stats is 0 
    file is test1 
    key is key3 
    set stats[test1-key3] to 0 
    test1-key3 
    stats is 0 
    file is test1 
    key is key4 
    set stats[test1-key4] to 0 
    test1-key4 
    stats is 0 
    file is test1 
    key is key1 
    ./runMe.sh: line 117: test1: unbound variable 

这似乎只是正常工作的第4次迭代。然后当它试图测试第一个密钥是否被设置(它在这一点上)时失败。到底是怎么回事?

+0

请显示全部代码。 –

回答

0

我被两个运行之间调用此:

unset stats 

我认为它不会undeclare什么变量是。