数据库
MySQL
ORACLE
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
Linux运维
中间件
shell脚本
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
占位哈哈
首页 动态 发帖 版块 我的
 退出
游客  
等级:
金豆:
经验:
首页  /  linux运维  /  shell脚本  /  正文

shell流程控制之if语句

  473 
 0
 0

格式: if list; then list; [ elif list; then list; ] ... [ else list; ] fi

单分支


#/bin/bash
echo "hello world"


if 条件表达式; then
	命令
fi
示例:

#!/bin/bash
N=10
if [ $N -gt 5 ]; then
echo yes
fi
# bash test.sh
yes
双分支

if 条件表达式; then
命令
else
命令
fi
示例1:

#!/bin/bash
N=10
if [ $N -lt 5 ]; then
echo yes
else
echo no
fi
# bash test.sh
no
示例 2: 判断 crond 进程是否运行

#!/bin/bash
NAME=crond
NUM=$(ps -ef |grep $NAME |grep -vc grep)
if [ $NUM -eq 1 ]; then
echo "$NAME running."
else
echo "$NAME is not running!"
fi
示例 3: 检查主机是否存活

#!/bin/bash
if ping -c 1 192.168.1.1 >/dev/null; then
echo "OK."
else
echo "NO!"
fi

if 语句可以直接对命令状态进行判断,就省去了获取$?这一步!

多分支

if 条件表达式; then
命令
elif 条件表达式; then
命令
else
命令
fi
当不确定条件符合哪一个时,就可以把已知条件判断写出来,做相应的处理。

示例1

#!/bin/bash
N=$1
if [ $N -eq 3 ]; then
echo "eq 3"
elif [ $N -eq 5 ]; then
echo "eq 5"
elif [ $N -eq 8 ]; then
echo "eq 8"
else
echo "no"
fi

如果第一个条件符合就不再向下匹配。

示例 2:根据 Linux 不同发行版使用不同的命令安装软件

#!/bin/bash
if [ -e /etc/redhat-release ]; then
yum install wget -y
elif [ $(cat /etc/issue |cut -d' ' -f1) == "Ubuntu" ]; then
apt-get install wget -y
else
Operating system does not support.
exit
fi

标签:
作者签名: 只有努力,才会有收获   楼主  2021-12-14 11:53:30
回复列表
合作伙伴:
Powered by 运维术 8.4.13
© 2017-2024 模板 by 黑衣人
您的IP: 3.145.93.227 , 2024-11-21 17:17:27
Powered by 运维术 8.4.13
© 2017-2024 模板 by 黑衣人
(0) 分享
分享
取消
我的客服