Linux ';声明-A x';vs';声明-ax=()';
我使用的是由Fedora20运行的4.2.53(1)版本 下面两段代码的行为不同,有人能说出原因吗?谢谢Linux ';声明-A x';vs';声明-ax=()';,linux,bash,shell,Linux,Bash,Shell,我使用的是由Fedora20运行的4.2.53(1)版本 下面两段代码的行为不同,有人能说出原因吗?谢谢 [hidden]$ unset x; declare -p x; function f() { declare -A -g x; x[10]=100; }; f; declare -p x; -bash: declare: x: not found declare -A x='([10]="100" )' [hidden]$ unset x; declare -p x; function f
[hidden]$ unset x; declare -p x; function f() { declare -A -g x; x[10]=100; }; f; declare -p x;
-bash: declare: x: not found
declare -A x='([10]="100" )'
[hidden]$ unset x; declare -p x; function f() { declare -A -g x=(); x[10]=100; }; f; declare -p x;
-bash: declare: x: not found
declare -A x='()'
这是4.0-4.2中的一个bug。它是: 下面是4.3的结果,它们的行为相同:
$ echo $BASH_VERSION
4.3.11(1)-release
$ unset x; declare -p x; function f() { declare -A -g x; x[10]=100; }; f; declare -p x;
bash: declare: x: not found
declare -A x='([10]="100" )'
$ unset x; declare -p x; function f() { declare -A -g x=(); x[10]=100; }; f; declare -p x;
bash: declare: x: not found
declare -A x='([10]="100" )'
$ echo $BASH_VERSION
4.3.11(1)-release
$ unset x; declare -p x; function f() { declare -A -g x; x[10]=100; }; f; declare -p x;
bash: declare: x: not found
declare -A x='([10]="100" )'
$ unset x; declare -p x; function f() { declare -A -g x=(); x[10]=100; }; f; declare -p x;
bash: declare: x: not found
declare -A x='([10]="100" )'