一、单分支if语句:只在"条件成立"才执行相应的代码操作,否则不做任何操作.
语法:

if 条件测试操作
then
    命令序列
fi

例如:
编写个脚本,测试系统中是否有/media/cdrom这个目录,如果没有则创建.
脚本如下:

#!/bin/bash
mulu="/media/cdrom"
if [ ! -d $mulu ] ; then
   mkdir -p $mulu
fi

二、多分支if语句:针对单分支条件不成立时,执行另一个操作.
语法

if 条件测试操作
then                                      //条件成立执行命令序列1
   命令序列1
else                                     //条件不成立则执行命令序列2
   命令序列2           
fi

例:编写一个连通性测试小脚本.根据ping结果显示不同的提示,成功显示chenggong 失败显示shibai.如下:

#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null        //此操作不显示在屏幕上
if [ $? -eq 0 ]                             //上面条件成立则运行下面命令
then
    echo "chenggong"
else                                       //不成立则运行下面的命令
    echo "shibai"
fi

三、多分支if语句:对多个互斥的条件执行不同的操作.
语法:

if 条件测试操作1
then
   命令序列1
elif
then
   命令序列2
else
   命令序列3
fi

例:
编写1个成绩小脚本,90-100显示优秀,70-80显示一般,其他不及格.如

#!/bin/bash
read -p "请输入你的成绩" chengji
if [ $chengji -ge 90 ] && [ $chengji -le 100 ]
then
  echo "你的成绩很优秀"
elif [ $chengji -ge 70 ] && [ $chengji -lt 90 ]
then
   echo "你的成绩一般"
else
   echo"你的成绩不级合格"
fi

kill线程

#!/bin/bash

cd /data/jar
count=`find . -maxdepth 1 -type f -name duweixin.net.log -mmin +5 | wc -l`
if [ "$count" -ne 0 ]
then
  echo 超过5分钟了,kill线程
  varid=`ps -ef | grep duweixin.net-proxy-1.0.jar | grep -v grep | cut -c 9-15`
  echo 线程id: $varid
  if [ "$varid"== ""]
  then
     sh /data/jar/duweixin.net.sh
  else [ "$varid" -gt 0 ]
     kill -9 $varid
  echo 启动抓取....
  sh /data/jar/duweixin.net.sh
  fi
fi

exit

asoren
404 声望15 粉丝