On Wednesday 30 Mar 2011 11:13:58 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 > echo "first" > else > echo second > fi > > word1 word2 > second > ---------------------------------- > var1="word1 word2" > echo $var1 > if (test -z ""$var1"") then > echo "first" > else > echo second > fi > > word1 word2 > ./ss1: line 3: test: word1: binary operator expected > second > ----------------------------------
Use "set -x" at the beginning of the script and rerun it, and you'll immediately see why. -- D.