>>>>> On Thu, 20 Feb 2020, Chet Ramey wrote:

> On 2/20/20 10:05 AM, Ulrich Mueller wrote:
>>>>>>> On Thu, 20 Feb 2020, pepa65 wrote:
>> 
>>> On 20/02/2020 19.48, Ulrich Mueller wrote:
>>>> Still, I think it's sad that there isn't a command that can test for
>>>> assigned vs void variable, without the need for parsing of declare -p
>>>> output.
>> 
>>> There is no need to parse, the return value of `declare -p var` or
>>> `typeset -p var` will tell you what you want.
>> 
>> Unfortunately, it doesn't:
>> 
>> $ f() {
>> >   local var
>> >   var="foo"
>> >   declare -p var
>> >   echo $?
>> >   unset var
>> >   declare -p var
>> >   echo $?
>> > }
>> $ f
>> declare -- var="foo"
>> 0
>> declare -- var
>> 0

> It's unset because it doesn't have a value, but it retains the `local'
> attribute so it stays local if subsequently assigned one.

No objections about that. I was just saying that testing the return
status of declare -p is not enough. To find out if a variable is set
or unset, the output must be parsed, e.g., for presense of the = sign.

Reply via email to