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