您的位置 首页 shell脚本

shell if else语句 详解

这篇文章主要介绍  一下 shell if else语句嵌套的例子

很多初学者,或者刚接触 linux shell 编程的朋友 对shell if else elif  的语法 还不是很熟悉。

首先  shell中if else语法 有 2种 ,主要区别是 then 的位置。

(1) 第1种

if [  表达式 成立 ]; then
  执行的具体命令集合
fi

 

(2) 第2种:

if [ 表达式成立 ]
then 
  执行的具体命令集合
fi

这种是白眉大叔用的比较多的一种, 看起来舒服一下。 当然还是看自己的习惯

这2种 ,怎么写都可以, 最好固定一种,把习惯养成。 一些规范我们也要注意:

shell 脚本书写规范

else if  方式1

if [ 你有钱 ]
then
   我就嫁给你
else
   拜拜
fi

 

else if  方式2

if [ 你有钱 ]
then
   我就嫁给你
elif [ 你有房 ]
then
   我也嫁给你
elif [ 你活好 ] # 运维学的好
then
   我们先处朋友
else
    滚!
fi

 

注意, 这几种案例, then 在哪个地方都可以的, 就是根据开头讲过的2种情形来判断的。

 

[root@baimeidashu ~]#cat if.sh 
#!/bin/bash
read -p "请输入 你的编号" name
echo $name
if [ $name==1 ] 
then 
echo 1
elif [ $name==2 ]
then 
echo 2
elif [ $name==3 ]
then
echo 3
else
echo 4
fi

 

接下来,我给大家写个demo

 

 

 

[root@web00 day03]# cat yum.sh 
#!/bin/bash
#1.变量配置  获取系统版本号 备份yum仓库
os_ve=`hostnamectl|awk 'NR==7{print $(NF-1)}'`
mv_yum='mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup'


#2.判断网络
ping -c1 -W1 www.baidu.com &>/dev/null
if [ $? -ne 0 ];then
   echo "网络检查失败正在重启网络..."
   systemctl restart network
   ping -c1 -W1 www.baidu.com &>/dev/null
   if [ $? -ne 0 ];then
   echo "网络重启完成,无法联网,请手动排查网络问题.."
   exit
   fi
fi

#3.判断系统是否安装wget命令
which wget &>/dev/null
if [ $? -ne 0 ]
then
    echo "wget命令未安装,正在安装中请稍后....."
    yum -y install wget &>/dev/null
    if [ $? -eq 0 ];then
       echo "wget安装成功.."
    else
       echo "wget安装失败..请手动执行安装测试"
    fi
fi



#4.比对版本执行安装YUM仓库
if [ $os_ve -eq 7 ]
then
$mv_yum
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null
   if [ $? -eq 0 ];then
      echo "YUM仓库配置完成"
   fi

elif [ $os_ve -eq 6 ]
then
$mv_yum
   wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo
elif [ $os_ve -eq 8 ]
then
$mv_yum
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
fi

 

shell中if else语句的用法

shell脚本if else if
shell if -e
linux shell if else if
shell if -eq
shell中if语句

 

 

Shell编程中可实现条件控制的命令是
Shell编程中实现多条件控制的是
Shell编程中显示的变量的为
Shell编程中,变量名的命名须遵循规则是什么?
Shell编程中,while循环循环体的执行次数是0…
Shell编程中,对于continue命令
Shell编程中代表命令行中所有参数的个数的…
Shell编程中,那个指令可以查看上一条指令的…
Shell编程中在键盘取值的命令是
shell if else语句
欢迎来撩 : shell 编程从0到1

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章