bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

${y@a} on an empty array y fails with 'y: unbound variable' if run with


From: Mark March
Subject: ${y@a} on an empty array y fails with 'y: unbound variable' if run with set -u
Date: Tue, 26 Oct 2021 00:24:30 +0000 (UTC)

If -u is on and you declare a simple or associative array 'y' and set it empty, 
then ${y@a} will fail with 'unbound variable'.
I was able to repro this under 5.1.0(1)-release and 5.1.8. 5.0.17(1)-release 
does not seem to be affected.

The code to reproduce (output lines begin with #>):

echo $BASH_VERSION
#> 5.1.0(1)-release
set -u
declare -a y=()
echo ${y@a}
#> bash: y: unbound variable
declare -p y
#> declare -a y=()
echo ${y[@]}
#>
set +u
echo ${y@a}
#> a

As you can see, turning off -u makes ${y@a} work correctly. 
I wonder if this is a side-effect of the fix that you described in item (n) of 
the most recent change log:

n. Fixed a bug that caused ${foo@a} to treat foo as an unset variable if it was 
an array without a value for subscript 0/"0" but had other set elements

Thanks,
-Mark


reply via email to

[Prev in Thread] Current Thread [Next in Thread]