bug-bash
[Top][All Lists]
Advanced

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

Re: test -v with array elements


From: Chet Ramey
Subject: Re: test -v with array elements
Date: Mon, 1 Jun 2020 09:37:53 -0400
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.8.1

On 5/29/20 4:00 PM, Luiz Angelo Daros de Luca wrote:
> Hello,
> 
> While using test -v, I noticed that it returns false when I use it
> with a sparse or empty array. I need to add [@] or [index] to have it
> return true.
> 
> Is this expected? If so, it is not documented. It only has:
> 
> "True if the shell variable varname is set (has been assigned a value)."
> 
> I'm using GNU bash, version 5.0.16(1)-release (x86_64-pc-linux-gnu)
> 
> $ A=()
> $ test -v A || echo not defined
> not defined
> 
> Should it?

Referring to an array without a subscript is equivalent to referencing
element 0.

> 
> $ A=(x)
> $ test -v A || echo not defined
> 
> OK

This sets A[0]=x

> 
> $ A=()
> $ A[1]=1
> $ test -v A || echo not defined
> not defined
> 
> Should it? 'test -v A' is equivalent to 'test -v A[0]'

Exactly.

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet@case.edu    http://tiswww.cwru.edu/~chet/



reply via email to

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