1. if判断
1.1. 基本语法
if [ 条件判断式 ]
then
代码
fi
或者多分支
if [ 条件判断式 ]
then
代码
elif [ 条件判断式 ]
then
代码
fi
注意:条件判断适式中,中括号和条件判断式之间必须有空格。
1.2. 应用实例
案例: 请编写一个shell程序,如果输入的参数,大于等于60,则输出“及格了”,如果小于60,则输出“不及格”
- 创建一个
ifCase.sh
[root@CtCentos01 shcode]# vim ifCase.sh
- 多个判断分支判断
#!/bin/bash
#案例: 请编写一个shell程序,如果输入的参数,大于等于60,则输出“及格了”,如果小于60,则输出“不及格”
if [ $1 -ge 60 ]
then
echo "及格了"
elif [ $1 -le 60 ]
then
echo "不及格"
fi
判断结果:
2. case语句
2.1. case语句
基本语法:
case $变量名 in
"值1")
如果变量的值等于值1,则执行程序1
;;
"值2")
如果变量的值等于值2,则执行程序2
;;
……省略其他分支……
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
2.2. 应用实例
案例1:当命令行参数是1时,输出“周一”,是2时,输出“周二”,其他情况输出“other”
- 创建一个
testCase.sh
脚本
[root@CtCentos01 shcode]# vim testCast.sh
- 在case语句中分别讨论不同情况的输出
#!/bin/bash
#案例1:当命令行参数是1时,输出“周一”,是2时,输出“周二”,其他情况输出“other”
case $1 in
"1")
echo "周一"
;;
"2")
echo "周二"
;;
*)
echo "other......"
;;
esac
- 可以看到脚本的运行结果达到了预期
3. for循环
3.1. 基本语法1(离散)
for 变量 in 值1 值2 值3
do
程序
done
3.2. 应用实例
案例1:打印命令行输入的参数 [这里可以看出$*和$@的区别]
- 创建
testFor2.sh
脚本
[root@CtCentos01 shcode]# vim testFor1.sh
- 使用
$*
来获取参数为一个整体
#1/bin/bash
#案例1:打印命令行输入的参数 [这里可以看出$*和$@的区别]
#注意 $* 是把输入的参数当成一个整体,所以,只会输出一句
for i in "$*"
do
echo "num is $i"
done
- 使用
$@
来分别获取参数
#使用 $@ 来获取输入的参数,注意,这时是分别对待,有几个参数就输出几句
echo "======================================"
for j in "$@"
do
echo "num is $j"
done
3.3. 基本语法2(连续)
for ((初始值;循环控制条件;变量变化))
do
程序
done
3.4. 应用实例
案例1:从1加到100的值得输出显示
- 创建一个
testFor2.sh
脚本
[root@CtCentos01 shcode]# vim testFor2.sh
- 通过
$i
累加计算从1到100之和
#!/bin/bash
#案例1:从1加到100的值得输出显示
#定义一个变量 SUM
SUM=0
for((i=1;i<=100;i++))
do
#写上你的业务代码
SUM=$[$SUM+$i]
done
echo "总和SUM=$SUM"
我们也可以吧100
换成$1
实现计算从1加到输入的数之和
4. while循环
4.1. 基本语法1
while [ 条件判断式 ]
do
程序
done
注意:while和 [ 有空格,条件判断式 ]也有空格
4.2. 应用实例
案例1:从命令行输入一个数n,统计从1+……+n的值是多少?
- 建立脚本
testWhile.sh
[root@CtCentos01 shcode]# vim testWhile.sh
- while实现累加
#!/bin/bash
#案例1:从命令行输入一个数n,统计从1+……+n的值是多少?
SUM=0
i=0
while [ $i -le $1 ]
do
SUM=$[$SUM+$i]
#i自增
i=$[$i+1]
done
echo "执行结果=$SUM"