On Tue, 29 Aug 2023 11:44:13 -0400 Chet Ramey <chet.ra...@case.edu> wrote:
> On 8/29/23 11:38 AM, Kerin Millar wrote: > > On Tue, 29 Aug 2023 11:24:43 -0400 > > Chet Ramey <chet.ra...@case.edu> wrote: > > > >> If you want to check whether an array variable is set, you can check > >> whether it has any set elements: > >> > >> (( ${#assoc[@]} > 0 )) > > > > This doesn't check whether an "array variable is set". > > It checks whether there are any set elements. You have to assign a value > to set a variable. I conflated the property of being set with that of being declared. Sorry about that. So, what I really meant to say was that the existing test does not prove that it's declared. I initially thought that Christian might be concerned with that distinction, but do hope it's not the case. > > > Not only that, but the test will be true in the case that assoc has been > > defined as a variable that is not an array. > > One hopes that the shell programmer knows what variable types he's > using, and uses the appropriate constructs. Some elect to source shell code masquerading as configuration data (or are using programs that elect to do so). Otherwise, yes, definitely. -- Kerin Millar