Shell表达式中的 [ 和 [[ 的区别
AAA="eee rrr"
if [ "$AAA" == "eee rrr" ]
then
echo "equal!" # runs here.
else
echo "not equal!"
fi
AAA="eee rrr"
if [[ $AAA == "eee rrr" ]]
then
echo "equal!" # runs here
else
echo "not equal!"
fi
AAA="eee rrr"
if [ $AAA == "eee rrr" ] # [: too many arguments
then
echo "equal!"
else
echo "not equal!" # runs here
fi
可见,如果变量包含空格,即使 $AAA 两边不带双引号,使用[[ 可以防止变量被分割,当然,始终使用双引号是一个好习惯。如果使用[ ,则变量必须加上引号。