#多行
if 条件
then
命令
fi
#一行
if 条件; then 命令; fi
if 条件
then
命令
else
命令
fi
if 条件1
then
命令1
elif 条件2
then
命令2
elif 条件3
then
命令3
……
else
命令N
fi
提示"请输入你的考试成绩:" 接收用户输入一个成绩, 之后使用if else条件句判断
要求1: 小于 60 输出"不及格"
要求2: 大于等于60 并且 小于70 输出"及格"
要求2: 大于等于70 并且 小于80 输出"中等"
要求3: 大于等于80 并且 小于90 输出"良好"
要求4: 大于等于90 并且 小于等于100 输出"优秀"
要求5: 以上不符合输出"成绩不合法"
#!/bin/bash
read -p "请您输入您的考试成绩:" score
if ((score<60))
then
echo "不及格"
elif ((score>=60 && score<70))
then
echo "及格"
elif ((score>=70 && score<80))
then
echo "中等"
elif ((score>=80 && score<90))
then
echo "良好"
elif ((score>=90 && score<=100))
then
echo "优秀"
else
echo "成绩不合法"
fi

Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
if test 数字1 options 数字2
then
...
fi
options具体如下:
| 参数 | 说明 |
|---|---|
| -eq | 等于则为真 |
| -ne | 不等于则为真 |
| -gt | 大于则为真 |
| -ge | 大于等于则为真 |
| -lt | 小于则为真 |
| -le | 小于等于则为真 |
#/bin/bash
num1=1 num2=1 num3=2
echo "num1=${num1},num2=${num2},num3=${num3}"
if test $num1 -eq $num2
then
echo "num1 和 num2 相等"
else
echo "num1 和 num2 不相等"
fi
if test $num3 -gt $num2
then
echo "num3 大于 num2"
else
echo "num3 小于 num2"
fi

case 值 in
匹配模式1)
命令1
命令2
...
;;
匹配模式2)
命令1
命令2
...
;;
*)
命令1
命令2
...
;;
esac
#!/bin/bash
read -p "请输入一个0-7的数字:" number
case $number in
1)
echo "星期一"
;;
2)
echo "星期二"
;;
3)
echo "星期三"
;;
4)
echo "星期四"
;;
5)
echo "星期五"
;;
6)
echo "星期六"
;;
7)
echo "星期天"
;;
*)
echo "您输入的数字无效"
;;
esac

while 条件
do
命令1
命令2
...
continue; # 结束当前这一次循环, 进入下一次循环
break; # 结束当前循环
done
#!/bin/bash
read -p "请您输入一个数字:" number
let i=1
while (( $i <= $number))
do
echo "第${i}次打印: hello world"
((i++))
done

until 条件
do
命令
done
#!/bin/bash
read -p "请您输入一个数字:" number
let i=1
until (( $i >= $number ))
do
echo "第${i}次打印:hello world"
((i++))
done

for var in item1 item2 ... itemN
do
命令1
命令2
...
done
#start: 循环范围的起始值,必须为整数
#end: 循环范围的结束值, 必须为整数
for var in {start..end}
do
命令
done
for((i=start;i<=end;i++))
do
命令
done
#!/bin/bash
echo "##########循环方式1############"
for i in 1 2 3 4 5
do
echo "第 ${i}次打印: hello world"
done
echo "##########循环方式2############"
for i in {1..5}
do
echo "第 ${i}次打印: hello world"
done
echo "##########循环方式3############"
for((i=1;i<=5;i++))
do
echo "第 ${i}次打印: hello world"
done
for((;;)); do 命令; done
#!/bin/bash
let i=1
for((;;))
do
echo "第${i}次打印: hello world"
if test $i -eq 10
then
break
fi
((i++))
done

select in 循环用来增强交互性,它可以显示出带编号的菜单,用户输入不同的编号就可以选择不同的菜单,并执行不同的功能. select in 是 Shell 独有的一种循环,非常适合终端(Terminal)这样的交互场景, 其他语言没有;
select var in menu1 menu2 ...
do
命令
done
#!/bin/bash
echo "您的爱好是什么?"
select hobby in "编程" "游戏" "篮球" "游泳"
do
echo "您选择的爱好是:${hobby}"
break
done
echo "您的爱好是: ${hobby}"
