【Shell】实战案例:单分支if语句

这篇博客介绍了如何使用Shell脚本中的if-else和case语句进行条件判断和流程控制。通过实例展示了在Linux环境中配置Yum仓库和网络的自动化脚本,包括创建目录、检查服务状态、读取用户输入并执行相应操作等。内容涵盖错误处理、文件操作及系统命令的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.7实战案例:单分支if语句

if 条件测试
then
	命令序列
Fi
if 条件测试;then
	命令序列
Fi

if语句若为真,则执行then语句,若不为真则什么都不做

例子练习

if ! mkdir "/media/cdrom"
then
        echo "failed to create cdrom directory"
fi

若不能创建cdrom,则输出failed to create cdrom directory

通过if语句来判断是否服务正在运行

#!/bin/bash


if [ -z $1 ];
then
        echo "错误,未输入服务名称"
        echo "用法:脚本名 服务器名称"
exit
fi

if systemctl is-active $1 &>/dev/null ;
then
        echo "$1已经启动...."
else
        echo "$1未启动...."
fi

$0 就是编写的shell脚本本身的名字
$1 是在运行shell脚本传的第一个参数
$2 是在运行shell脚本传的第二个参数
$$ Shell本身的PID(ProcessID,即脚本运行的当前 进程ID号)

if else结构

num=$[RANDOM%10+1]

if [ $num -gt  5 ];
then
        echo "big"
        echo $num
else
        echo "small"
        echo $num
fi

RANDOM是Linux的随机数

case语句

read -p "请输入一个字母:" me
case $me in
a)
        echo "Im a !";;
b)
        echo "Im BBB!";;
c)
        echo "Im C!!!";;
*)
        echo "This is other!";;
esac

;;:为结束

;;&:会对后面的模式进行匹配

;&:会执行后一个模式匹配的命令

小练习

#!/bin/bash 
echo "----------------------------------------------------------------------------"
echo "1、自动配置Yum仓库(本地)" 
echo "2、配置网络" 



echo "----------------------------------------------------------------------------"
read -p "请输入选项:" state
case $state in
1)
        echo "开始执行自动配置本地yum仓库脚本"
        mkdir /media/cdrom
if [ $? -eq 0];then
        echo "/dev/cdrom /media/cdrom iso966 defaults 0 0" >> /etc/fstab
        mount -a
        rm -rf /etc/yum.repos.d/*.repo
        ls /etc/yum.repos.d/
cat >> /etc/yum.repos.d/wd.repo << EOF
[wd]
name=wd
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
EOF

        yum clean all
        yum list
        echo -e "\e[31m本地Yum仓库已自动配置成功\e[0m"
else
        echo "File exists!"
        echo "/dev/cdrom /media/cdrom iso9660 defaults 0 0" >> /etc/fstab
        mount -a
        rm -rf /etc/yum.repos.d/*.repo
        ls /etc/yum.repos.d/
cat >> /etc/yum.repos.d/wd.repo << EOF
[wd]
name=wd
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
EOF

        yum clean all
        yum list
        echo -e "\e[31m本地Yum仓库已自动配置成功\e[0m"
fi;;
2)
        read -p "请输入IP地址" ip
        read -p "请输入掩码" mask
        read -p "请输入网关" gateway
        nw=$(ifconfig | head -1 | cut -d":" -f1)
echo "BOOTPROTO=static
ONBOOT=yes
IPADDR=$ip
NETMASK=$mask
GATEWAY=$gateway" >/etc/sysconfig/network-scripts/ifcfg-$nw
echo "BROWSER_ONLY=no" >>/etc/sysconfig/network-scripts/ifcfg-$nw
echo "BOOTPROTO=static" >>/etc/sysconfig/network-scripts/ifcfg-$nw
echo "NAME=$nw" >> /etc/sysconfig/network-scripts/ifcfg-$nw
echo "DEVICE=$nw" >> /etc/sysconfig/network-scripts/ifcfg-$nw
echo "ONBOOT=yes" >> /etc/sysconfig/network-scripts/ifcfg-$nw
echo "配置成功"
systemctl restart network;;
esac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ACHAI:)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值