Linux | shell脚本-条件判断if和循环语句for
上个章节中,我们学习了判断语句和运算语句。shell脚本中,这些判断语句一般都是和if、else、elif、for和while等语句一起使用。 在脚本编写中,条件判断语句常常用于多种情况的判断,符合哪一种情况就执行哪一种的命令。
1、流程控制:if单分支结构
语法:
if 条件判断;then
条件判断成功时执行的操作
...
fi
例子: 结合整数值比较-eq;检查主机是否在线
vim test1.sh
#!/bin/bash
if [ $# -ge 1 ]; then
ping -c 3 $1 &> /dev/null && echo "$1 online" ||echo "$1 no online"
fi
运行结果:
2、流程控制:if双分支结构
语法:
if 条件判断;then
条件判断成功时执行的操作
...
else
条件判断不成功时执行的操作
...
fi
例子:结合字符比较-z;检查某个服务是否运行,如果没运行则启动。
vim test2.sh
#!/bin/bash
read -p "请输入服务名称" service_name
if [ ! -z $service_name ];then
service $service_name status &> /dev/null
if [ $? -eq 0 ];then
echo "$service_name is running"
else
service $service_name start
fi
else
echo "您输入服务名称例如:httpd"
fi
运行结果:
3、流程控制:if多分支结构
语法:
if 条件判断1;then
条件判断1成立时执行的操作
....
elif 条件判断2;then
条件判断2成立时执行的操作
....
else
所有条件判断都不成立时执行的操作
fi
例子:做一个奖品分类0-100分结合数值比较
0-59 安慰奖 60-70 三等奖 71-80 二等奖 81-90 一等奖91-100 特等奖
如果:不输入或大于100请重新输入分数
#!/bin/bash
read -p "请输入你的分数" a
if [ -z $a ];then
echo "分数的有效范围是 0~100分!!!"
exit
fi
if [ $a -ge 0 ] && [ $a -le 59 ];then
echo "安慰奖"
elif [ $a -ge 60 ] && [ $a -le 70 ];then
echo "三等奖 "
elif [ $a -ge 71 ] && [ $a -le 80 ];then
echo "二等奖 "
elif [ $a -ge 81 ] && [ $a -le 90 ];then
echo "一等奖 "
elif [ $a -ge 91 ] && [ $a -le 100 ];then
echo "特等奖 "
else
echo "分数的有效范围是 0~100分!!!"
fi
运行结果:
shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for、while和until。while循环和for循环属于“当型循环”,而until属于“直到型循环”。循环控制符:break和continue控制流程转向。
1、循环结构:for
语法:
for 变量名 in 变量值列表
do
循环体
done
例子:输出1-254的中的偶数,并且计算个数
#!/bin/bash
num=0
for i in {1..254}
do
if [ `expr $i % 2` -eq 0 ];then
echo $i
let num++
fi
done
echo "1-254 之间的偶数 "$num" 个"
运算结果:
睿江云官网链接:https://www.eflycloud.com/home?from=RJ0032