[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/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: test -v with array elements,
Chet Ramey <=