[CentOS] bash test ?

Wed Apr 19 14:36:09 UTC 2023
Jon LaBadie <jcu at labadie.us>

On Wed, Apr 19, 2023 at 07:50:29AM +0200, lejeczek via CentOS wrote:
>Hi guys.
>
>I cannot wrap my hear around this:
>
>-> $ unset _Val; test -z ${_Val}; echo $?
>0
>-> $ unset _Val; test -n ${_Val}; echo $?
>0
>-> $ _Val=some; test -n ${_Val}; echo $?
>0
>
>What is this!?
>How should two different, opposite tests give the same result
>Is there some bash option which affects that and if so, then
>what would be the purpose of such nonsense?
>
>many thanks, L.

Quoted $_Val expands to a null, zero length string.
Unquoted $_Val expands to nothing which is different.

An alternative test with double square brackets would
give you your expected results as it automatically
quotes unquoted variables.

$ unset _Val ; [[ -n $_Val ]] ; echo $?


jl

-- 
Jon H. LaBadie                  jcu at labadie.us