Linux流程控制语句:if、for、while、case
- 操作系统
- 2022-08-17
- 13热度
- 0评论
if条件测试语句
单分支结构
if [ 条件测试操作 ];then
执行操作
fi
示例:
#!/bin/bash
DIR="/tmp/test"
if [ ! -d $DIR ] ; then
mkdir -p $DIR
fi
双分支结构
if [ 条件测试操作 ];then
执行操作
else
执行操作
fi
示例:
#!/bin/bash
# ping 3 次,每次间隔 0.2s ,3s 超时,检查主机是否在线
ping -c 3 -i 0.2 -w 3 $1 &> /dev/null
if [ $? -eq 0 ] ; then
echo "Host $1 is Online"
else
echo "Host $1 is Offline"
fi
多分支结构
if [ 条件测试操作 ] ; then
执行操作
elif [ 条件测试操作 ] ; then
执行操作
elif [ 条件测试操作 ] ; then
执行操作
else
执行操作
fi
示例:
#!/bin/bash
read -p "输入你的分数(0-100):" GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ; then
echo "大于等于85分,小于等于100分,优秀"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ] ; then
echo "大于等于70分,小于等于84分,优秀"
else
echo "再接再厉"
fi
for循环语句
语句结构
for i in i_list
do
执行操作
done
示例
cat users.txt
> andy
> carl
> duke
#!/bin/bash
reap -p "输入用户的密码:" PASSWD
for UNAME in `cat users.txt`
do
id $UNAME &> /dev/null
if [ $? -eq 0 ] ; then
echo "$UNAME 已存在"
else
useradd $UNAME
echo "$PASSWD" | passwd --stdin $UNAME &> /dev/null
echo "$UNAME,创建成功"
fi
done
while条件循环语句
语句结构
while 条件测试操作
do
执行操作
done
示例
#!/bin/bash
# 猜价格
PRICE=$(expr $RANDOM % 1000)
TIMES=0
echo "商品实际价格为 0-999 之间,请猜猜是多少?"
while true
do
read -p "请输入您猜的价格数目:" INT
let TIMES++
if [ $INT -eq $PRICE ] ; then
echo "恭喜您猜对了,实际价格就是 $PRICE"
echo "您总共猜了 $TIMES 次"
exit
elif [ $INT -gt $PRICE ] ; then
echo "猜的太高了"
else
echo "猜的太低了"
fi
done
case 条件测试语句
语句结构
case 变量值 in
模式1)
执行操作
;;
模式2)
执行操作
;;
...
*)
默认操作
esac
示例
#!/bin/bash
# 判断用户输入的字符类型
read -p "请输入一个字符,并按 Enter 键确认:" KEY
case "$KEY" in
[a-z]|[A-Z])
echo "您输入的是字母"
;;
[0-9])
echo "您输入的是数字"
;;
*)
echo "您输入的是其他字符"
esac