Shell_07_逻辑结构
一、if 判断
if … then … fi
单层
如果 是真的 那么 …
if [ 条件判断式 ];then
当条件判断式成立时,可以进行的命令。
fi # 结束这个判断语句结构
示例:
提示输入一个整数,程序判断输入的值是否大于 18
风格 1
#!/usr/bin/env sh
read -p "请输入一个整数:" num
if [ "$num" -gt 18 ];then
echo "你输入的数值大于 18"
fi
echo "hello..."
风格2
#!/usr/bin/env sh
read -p "请输入一个整数:" num
if [ "$num" -gt 18 ]
then
echo "你输入的数值大于 18"
fi
echo "hello..."
if … then … else…fi
多重、复杂条件判断式
如果 是真的 那么 … 否则 …
一颗红心,两手准备
if [ 条件判断式 ]; then
当条件判断式成立时,可以进行的指令工作内容;
else
当条件判断式不成立时,可以进行的指令工作内容;
fi
示例:
判断用户输出的字符串
输入y
就输出文本内容 “script is running…”
否则输出文本内容 “STOP”
image
if … elif … elif … else … fi
多个条件判断 (if … elif … elif … else) 分多种不同情况执行
if [ 条件判断式一 ]; then
当条件判断式一成立时,可以进行的指令工作内容;
elif [ 条件判断式二 ]; then
当条件判断式二成立时,可以进行的指令工作内容;
else
当条件判断式一与二均不成立时,可以进行的指令工作内容;
fi
注意
elif
也是个判断式,因此出现elif
后面都要接then
来处理!但是else
已经是最后的没有成立的结果了, 所以else
后面并没有then
示例
通过判断输入的整数,判断是什么常用服务
#!/usr/bin/env sh
read -p "请输入一个常用的服务默认端口号:" port
if [ "$port" -eq 80 ];then
echo "HTTP 服务"
elif [ "$port" -