if [ -f file ] 如果文件存在 if [ -d ... ] 如果目录存在 if [ -s file ] 如果文件存在且非空 if [ -r file ] 如果文件存在且可读 if [ -w file ] 如果文件存在且可写 if [ -x file ] 如果文件存在且可执行
整数变量表达式
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类似)
逻辑非 ! 条件表达式的相反 if [ ! 表达式 ] if [ ! -d $num ] 如果不存在目录$num 逻辑与 –a 条件表达式的并列 if [ 表达式1 –a 表达式2 ] 逻辑或 -o 条件表达式的或 if [ 表达式1 –o 表达式2 ] 逻辑表达式
表达式与前面的= != -d –f –x -ne -eq -lt等合用 逻辑符号就正常的接其他表达式,没有任何括号( ),就是并列if [ -z "$JHHOME" -a -d $HOME/$num ]
注意逻辑与-a与逻辑或-o很容易和其他字符串或文件的运算符号搞混了
&& 如果是“前面”,则“后面” [ -f /var/run/dhcpd.pid ] && rm /var/run/dhcpd.pid 检查 文件是否存在,如果存在就删掉 || 如果不是“前面”,则后面 [ -f /usr/sbin/dhcpd ] || exit 0 检验文件是否存在,如果存在就退出
