相关疑难解决方法(0)

在Bash测试中,如果声明了关联数组

如何测试是否在Bash中声明了关联数组?我可以测试一个变量,如:

[ -z $FOO ] && echo nope
Run Code Online (Sandbox Code Playgroud)

但我似乎不适用于关联数组:

$unset FOO
$declare -A FOO
$[ -z $FOO ] && echo nope
nope
$FOO=([1]=foo)
$ [ -z $FOO ] && echo nope
nope
$ echo ${FOO[@]}
foo
Run Code Online (Sandbox Code Playgroud)

编辑:

谢谢你的答案,两者似乎都有效,所以我让速度决定:

$ cat test1.sh
#!/bin/bash
for i in {1..100000}; do
    size=${#array[@]}
    [ "$size" -lt 1 ] && :
done
$ time bash test1.sh #best of five

real    0m1.377s
user    0m1.357s
sys     0m0.020s
Run Code Online (Sandbox Code Playgroud)

和另外一个:

$ cat test2.sh
#!/bin/bash

for i in {1..100000}; do
    declare …
Run Code Online (Sandbox Code Playgroud)

bash associative-array

11
推荐指数
3
解决办法
3617
查看次数

标签 统计

associative-array ×1

bash ×1