shell脚本的if条件语句

本文详细介绍了Shell脚本中if条件语句的使用,包括单分支、双分支和多分支的结构,提供了多个实用的事例,如检查目录存在性、用户权限、网络连通性、服务状态以及成绩划分等。
摘要由CSDN通过智能技术生成

If条件语句

if 语句的结构
在Sell脚本应用中,if语句是最为常用的一种流程控制方式.用来根据特定的条件测试结果分别执行不同的操作-如果…根据不同的复杂程度,if 语句的选择结构可以分为三种基本类型,适用于不同的应用场合:
单分支的if语句
if语句的“分支”指的是不同测试结果所对应的执行语句(一条或多条). 对于单分支的选择结构,只有在“条件成立”时才会执行相应的代码,否则不执行任何操作。单分支的if语句的语法格式如下:
if 条件测试操作
then

命令序列

fi
在上述语句结构中,条件测试操作即【条件表达式】语句,也可以是其他可执行的命令语句;【命令序列】指的是一条或多条可执行的命令行,也包括嵌套使用if语句或其他流程控制语句。
单分支if语句的执行流程:首先判断条件测试操作的结果,如果返回值为0,表达条件通过,则执行then后面的命令序列,一直到遇见fi结束判断为止,继续执行其他脚本代码;如果返回值不为0.则忽略then,忽略then后面的命令序列。直接调至fi行以后执行其他脚本代码。

事例1:

该脚本含义:查看该目录是否存在,不存在则新建。
[root]# vi mount.sh
#!/bin/bash
mount_dir="/media/cdrom"
if [ ! -d $mount_dir ]
then
mkdir -p $mount_dir
fi

事例2:

当普通用户执行该脚本时,不行,当root用户执行时才可以。
[root]# vi root.sh
#!/bin/bash
if [ “$USER” != “root” ]
then
echo “error:非root用户,权限不足”
exit 1
fi
fdisk -l /dev/sda

双分支的if语句:

对于双分支的结构。要求针对条件成立“条件不成立两种情况分别执行不同的操作。
语法格式:
1f 条件测试操作
then
命令序列1
else
命令序列2
fi
双分支if语句的执行流程:首先判断条件测试操作的结果,如果条件成立,则执行then后面的命令序列1忽略else及后面的命令序列2.直到遇见fi结束判断;如果条件不成立,则忽略then及后面的命令序列1.直接跳至else 后面的命令序列2并执行,直到遇见fi结束判断。

事例1:

通过位置参数$1来提供目标主机地址,然后根据ping命令监测结果给出相应的提示。
[root]# vi ping.sh
#!/bin/bash
HOST=192.168.152.1
ping -c 3 $HOST &> /dev/null 监测是否能联通目标主机
if [ $? -eq 0 ] 判断前一条命令的返回状态
then
echo “host $HOST is up”
else
echo “host $HOST is down”
fi

事例2&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值