[U-Boot-Users] test variable existence in hush

Andreas Engel Andreas.Engel at marconi.com
Mon Aug 22 15:01:36 CEST 2005


On Mon, 22 Aug 2005 14:21:58 +0200 Wolfgang Denk wrote:

>I cannot confirm this. The only part of hush which is  involved  here
>is the && processing which works fine for me..
>
>"test" is NOT a hush builtin.

I hit the send button too early...

Yes, "test" is not a hush builtin, but it is only available if the hush
parser is enabled.

>Sure:
>
>TRAB # foo=
>TRAB # test -n "$foo" && echo yes
>TRAB # test -n "$foo" || echo no
>no
>TRAB # test "$foo" && echo yes
>TRAB # test "$foo" || echo no
>no
>TRAB # foo=dummy
>TRAB # test -n "$foo" && echo yes
>yes
>TRAB # test -n "$foo" || echo no
>TRAB # test "$foo" && echo yes
>TRAB # test "$foo" || echo no
>no
>
>THe only problem I see is with "test -z":
>
>	TRAB # foo=
>	TRAB # test -z "$foo" && echo yes
>	TRAB # test -z "$foo" || echo no
>	no
>but
>	TRAB # test -z "" && echo yes
>	yes
>	TRAB # test -z "" || echo no
>	TRAB # 

No, I think this is misleading. A quick debugging session showed that
the problem is not the "test" command itself. With 'test -z ""' and
'test -n ""', the command will correctly see three arguments. However,
with 'test -n "$foo"' and 'test -z "$foo"' (and empty $foo), the command
will only get two arguments which always results in a return value of 1.
That's why 'test -n' seems to work.

Regards,
  Andreas Engel




More information about the U-Boot mailing list