文件表达式

if [ -f  file ]    如果文件存在

if [ -d ...   ]    如果目录存在

if [ -s file  ]    如果文件存在且非空

if [ -r file  ]    如果文件存在且可读

if [ -w file  ]    如果文件存在且可写

if [ -x file  ]    如果文件存在且可执行  

if [ -e file  ]    如果文件存在

if [ 条件一 -o 条件二 ]  这里的-o相当于||(逻辑或)

if [ 条件一 -a 条件二 ]  这里的-o相当于&&(逻辑与)

例子:

下面是演示逻辑与和逻辑或

(1) if [ $A = "a"  -a  $B = "b" ]; then    #逻辑与

(2) if [ $A = "a"  -o  $B = "b" ]; then    #逻辑或

(3) if [[ $A = "a" ]] && [[ $B = "b" ]]; then    #逻辑与

(4) if [[ $A = "a" ]] || [[ $B = "b" ]]; then    #逻辑或


整数变量表达式

# -eq  -ne  -lt  -nt只能用于整数,不适用于字符串,字符串等于用赋值号=

# =放在别的地方是赋值,放在if [ ] 里就是字符串等于,shell里面没有==的,那是c语言的等于

if [ int1 -eq int2 ]    如果int1等于int2  

if [ int1 -ne int2 ]    如果不等于    

if [ int1 -ge int2 ]       如果>=

if [ int1 -gt int2 ]       如果>

if [ int1 -le int2 ]       如果<=

if [ int1 -lt int2 ]       如果<


字符串变量表达式

If  [ $a = $b ]                 如果string1等于string2

                               字符串允许使用赋值号做等号

if  [ $string1 !=  $string2 ]   如果string1不等于string2      

if  [ -n $string  ]             如果string 非空(非0),返回0(true)  

if  [ -z $string  ]             如果string 为空

if  [ $sting ]                  如果string 非空,返回0 (和-n类似)