On 2/19/20 11:18 AM, Ulrich Mueller wrote: >>>>>> On Wed, 19 Feb 2020, Chet Ramey wrote: > >> On 2/19/20 7:00 AM, Ulrich Mueller wrote: >>> Bash Version: 5.0 >>> Patch Level: 16 >>> Release Status: release >>> >>> Description: >>> The GNU Bash Reference Manual Version 5.0 says about test -v: >>> '-v VARNAME' >>> True if the shell variable VARNAME is set (has been >>> assigned a value). >>> >>> However, it doesn't always return true when VARNAME is an >>> (indexed or associative) array that has been assigned a value. > >> If you refer to an array variable without the subscript, it's equivalent >> to referencing element 0. > > That doesn't seem obvious from the documentation for -v.
It's in Arrays: "Referencing an array variable without a subscript is equivalent to ref- erencing the array with a subscript of 0." > So, is there any syntax that allows to test if a value has been assigned > to the array variable? [ -v array[@] ] > Especially, to distinguish VARNAME=() (empty > array) from VARNAME being unset? There's little to distinguish them: neither has a subscript that's been assigned a value. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU c...@case.edu http://tiswww.cwru.edu/~chet/