bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: wrong logical evaluation of expressions involving true or false comm


From: Paul Jarc
Subject: Re: wrong logical evaluation of expressions involving true or false commands
Date: Mon, 25 Jun 2007 21:39:24 -0400
User-agent: Gnus/5.110003 (No Gnus v0.3) Emacs/21.4 (gnu/linux)

Matthew Woehlke <mw_triad@users.sourceforge.net> wrote:
> Stephane Chazelas wrote:
>> [ -n "$foo" -a -n "$bar" ]
>> is not the expression to test whether both "$foo" and "$bar" are
>> non-empty, as it would fail for some specific values of $foo or
>> $bar (try it when $foo contains "=" for instance).
>
> Huh? Why would having an '=' in foo have any effect?

I think Stephane meant the exact string "=", not any string containing
"=".  

> "$foo" is still a string, it should not be subject to word splitting

Right, but it is special to the test/[ command.

$ [ -n = -a -n z ]
bash: [: too many arguments

Here, "=" is interpreted as a binary operator, not as the operand of
"-n".


paul




reply via email to

[Prev in Thread] Current Thread [Next in Thread]