写了一个简单的Shell,有点小问题,请指教。

写了一个简单的Shell,有点小问题,请指教。

[code:1]#!/bin/sh

BB=0
SS=1

if [ $BB -a $SS ]; then
  echo "True"
else
  echo "False"
fi
[/code:1]

我在Cygwin上运行结果是打印出True。
可是 -a 不是and的意思吗?为什么会 0 && 1会变成真呢?
这个是看BB和SS这两个变量是否有值
有的话就返回True
至少其中一个没有的话就是False了....