On 30.03.2011 12:13, ali hagigat wrote:
The following scripts were run for /bin/bash, version 4.0.33, and then
comes their outputs. In the second example seems to have a warning:
"binary operator expected". Why the error is generated? and why there
is no error for the first example?
----------------------------------
var1="word1     word2"
echo $var1
if (test -z "\"$var1\"")   then

why run the test in a subshell?
is there any reason for the second quote pair?

echo "first"
else
echo second
fi

word1 word2
second
----------------------------------
var1="word1     word2"
echo $var1
if (test -z ""$var1"")   then

"" expands to nothing, as nothing in between opening and closing quote.
$var1 (now unqoted) expands to 'word1 word2', so the test command sees 'word2' while it expects another operator.

echo "first"
else
echo second
fi

word1 word2
./ss1: line 3: test: word1: binary operator expected
second
----------------------------------




Reply via email to