Shell总结04-测试和分支

if then/else 分支

# “[]”是调用test命令的一种形式

#文件操作
#     [ -e file ] :判断文件是否存在 
#     [ -d dir ]  :判断目录dir是否存在
#     [ -b file ]  :判断块设备是否存在
#     [ -c file ]  :判断字符设备是否存在
#     [ –s File ]  : 套接字文件是否存在
#     [ –r File ]  : 文件是否可读
#     [ –x File ]  : 文件是否可执行

##比较操作
#	  [ n1 -eq n2 ]	n1,n2是否相等
#	  [ n1 –ne n2 ] n1不等于n2 
#	  [ n1 –ge n2 ] n1大于等于n2 
#	  [ n1 –gt n2 ] n1大于n2
#     [ $x = $y ] :判断$x和$y是否相等  

#     [ -x /bin/ls ] :判断/bin/ls是否存在并有可执行权限 
#     [ -n $var ] :判断$var变量是否有值 

#条件测试通常和if+else/elif+fi代码块儿配合使用,例如
if [ ! -d $NX_LOG ]; then
   mkdir -p $NX_LOG
fi

case (in) esac分支

case "$variable" in
  "$condition1" )
    command...
  ;;
  "$condition2" )
    command...
  ;;
esac

case $( arch ) in   # $( arch ) 返回设备架构。
                    # 等价于 ‘uname -m"。
  i386 ) echo "80386-based machine";;
  i486 ) echo "80486-based machine";;
  i586 ) echo "Pentium-based machine";;
  i686 ) echo "Pentium2+-based machine";;
  *    ) echo "Other type of machine";;
esac

#对变量进行引用不是必须的,因为在这里不会进行字符分割。
#条件测试语句必须以右括号 ) 结束。
#每一段代码块都必须以双分号 ;; 结束。
#如果测试条件为真,其对应的代码块将被执行,而后整个 case 代码段结束执行。
#case 代码段必须以 esac 结束(倒着拼写case)。