bin/102184: the -n switch of the test command does not work
Florian Meister
florian.meister at medienhaus.at
Thu Aug 17 13:20:18 UTC 2006
The following reply was made to PR bin/102184; it has been noted by GNATS.
From: Florian Meister <florian.meister at medienhaus.at>
To: Maxim Konovalov <maxim at macomnet.ru>
Cc: bug-followup at freebsd.org
Subject: Re: bin/102184: the -n switch of the test command does not work
Date: Thu, 17 Aug 2006 15:07:32 +0200
maybe a shell problem - what shell do you use ?
when I do the following I can also reproduce the error:
--snip--
tpextu02# set testvar="lala"; [ -f $lala ]; echo $?
1
tpextu02# set testvar="" ; [ -f $lala ] ; echo $?
1
tpextu02# [ -f "lala" ] ; echo $?
1
tpextu02# [ -f "" ] ; echo $?
1
--snap--
bye, florian
Maxim Konovalov wrote:
> Hi Florian,
>
> [...]
>>> Description:
>> test -n does not work. I always get a return code of zero, no
>> matter if the variable has zero or more characters. I
>> crosschecked it with the -z switch. This switch works with the
>> same test-script.
>
> Works for me:
>
> $ /bin/test -n "aa"; echo $?
> 0
> $ /bin/test -n ""; echo $?
> 1
> $ export n="aa"; /bin/test -n "$n"; echo $?
> 0
> $ export n=""; /bin/test -n "$n"; echo $?
> 1
>
>>> How-To-Repeat:
>> sample shell script:
>> --snip--
>> jail_interface="lala"
>> if [ -n ${jail_interface} ]; then
>> echo "interface: -$jail_interface-"
>> fi
>> --snap--
>>
>> try to replace the variable jail_interface with nothing - same
>> result. If you replace -n with -z you get the expected results.
>
More information about the freebsd-bugs
mailing list