首页›Linux操作系统›Linux网络操作系统-第22节-Shell流程控制——if语句

Linux网络操作系统-第22节-Shell流程控制——if语句

上节会写条件,这一节把条件装进 if 里,让脚本真正「思考」。记住结构:if 条件 → then 动作 → fi 收尾。

第二十二节 Shell if语句:单分支/双分支/多分支写法与服务守护实例
第二十二节 Shell if语句:单分支/双分支/多分支写法与服务守护实例

一、单分支:目录不存在则创建

if [ ! -d /backup ]
then
    mkdir /backup
    echo "已创建备份目录"
fi
# ! 是取反:目录不存在才执行

二、双分支:用户是否存在

if id $1 &>/dev/null; then
    echo "用户 $1 存在"
else
    echo "用户 $1 不存在"
fi
# id 成功=存在;&>/dev/null 把输出丢弃只看结果

三、多分支:分数评级

read -p "请输入分数: " score
if   [ $score -ge 90 ]; then echo 优秀
elif [ $score -ge 60 ]; then echo 及格
else                        echo 不及格
fi

四、实战:服务守护脚本

# 检查 httpd 是否运行,不在就拉起来
if ! systemctl is-active httpd &>/dev/null; then
    systemctl start httpd
    echo "$(date) httpd 被拉起" >> /var/log/guard.log
fi

这个守护脚本放进 crontab 每分钟跑一次,就是最朴素的「服务保活」。作业:写脚本判断 /backup 是否存在并输出提示,再改造第 20 节的 add.sh:参数不足 2 个就用法提示退出(提示:配合 [ $# -ne 2 ])。

上一篇
下一篇