shell的if结构case结构

2018.5.14

if单分支

if  [ 判断];then

命令

fi


if双分支           

if 【判断】;then

命令1

else

命令2

fi

这里写一个双分支的脚本测试指定主机是否能ping通

vim  ping.sh

#!/bin/bash

ping -c 2 -i 0.2  -W 1  192.168.4.$1  > /dev/null         这里因为linux的ping机制无限所以添加-c2来限制次数  -i 0.2 ping间隔0.2秒   -W 1响应时间超过1秒认为down机
if [ $? -eq 0 ];then
echo "192.168.4.$1 通"
else
echo "192.168.4.$1 不通"
fi


if多分支

if [判断];then

命令1

elif [判断];then(可以有很多)

命令2

else

命令3

fi

多分支练习脚本:生成一个随机数,执行后输入一个数,二者比较后返还结果大了还是小了

#!/bin/bash
read -p "输入一个数:" X
Y=$[RANDOM%10+1]
if [ $X -eq $Y ];then
echo "恭喜你猜对了呵呵哒"
elif [ $X -lt $Y ];then
echo "小了*-*"
else
echo "大+.+"
fi
这个脚本后面可以用while



这里记录下case简单if结构

case   变量   in

A)

  命令1;;

B)

  命令2;;

C)

  命令3;;

*)

  命令4;;

esac


#!/bin/bash
case $1 in
-n)
  touch $2;;
-e)
  vim $2;;
-c)
  cat $2;;
-r)
  rm -rf $2;;
*)
 echo "Usage $0 [-n|-e|-c|r] file"
esac
这个脚本写集成了几个命令,包含提示功能   其中$0是文件本身名 $1是选项 $2用户输入,一个脚本多个选项

case只对字符作判断 当变量符合执行对应命令。


你可能感兴趣的:(shell脚本,Linux)