Linux网络操作系统-第22节-Shell流程控制——if语句
上节会写条件,这一节把条件装进 if 里,让脚本真正「思考」。记住结构:if 条件 → then 动作 → fi 收尾。

一、单分支:目录不存在则创建
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 ])。

