一、if语句
1.基本语法
语法①:
if [ condition ];then
程序
fi
语法②:
if [ 条件判断式 ]
then
程序
fi
2.注意事项
(1)[ condition ],中括号和条件判断式之间必须有空格
(2)if后要有空格
3.示例演示
#!/bin/bash
if [ $1 -lt "5" ]
then
echo "第一个参数小于5"
elif [ $1 -eq "5" ]
then
echo "第一个参数等于5"
else
echo "第一个参数大于5"
fi
if [ $2 -lt "10" ];then
echo "第二个参数小于10"
elif [ $2 -eq "10" ];then
echo "第二个参数等于10"
else
echo "第二个参数大于10"
fi
运行结果:
三、case语句
1.基本语法
case $变量名 in
“值1”)
如果变量的值等于值1,则执行程序1
;;
“值2”)
如果变量的值等于值2,则执行程序2
;;
…省略其他分支…
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
2.注意事项
(1) case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
(2) 双分号“;;”表示命令序列结束,相当于C语言中的break。
(3) 最后的“*)”表示默认模式,相当于C语言中的default。
3.示例演示
#!/bin/bash
case $1 in
1)
echo "参数是1"
;;
2)
echo "参数是2"
;;
3)
echo "参数是3"
;;
*)
echo "参数不是1、2、3"
;;
esac
运行结果:
二、for循环
1.基本语法
语法①:
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
语法②:
for 变量 in 值1 值2 值3…
do
程序
done
2.示例演示
程序1:
#!/bin/bash
sum1=0
sum2=0
for ((i = 1; i <= 10; i++))
do
sum1=$[$i+$sum1]
done
echo "for1 sum1 is $sum1"
for j in "$*"
do
echo "for2 this is $j"
done
for k in "$@"
do
echo "for3 this is $k"
done
运行结果:
注意区分$*和 $@,上面的程序中将 & *和 $@都加了引号,看下面不加引号的程序:
程序2:
#!/bin/bash
sum1=0
for ((i = 1; i <= 10; i++))
do
sum1=$[$i+$sum1]
done
echo "for1 sum1 is $sum1"
for j in $*
do
echo "for2 this is $j"
done
for k in $@
do
echo "for3 this is $k"
done
运行结果:
$*代表所有参数的整体, $@代表所有参数的集合,且每个参数仍然独立,对于 $@来说,加不加引号都一样,但是对于 $ *来说就有差别了,看下面的程序:
程序3:
#!/bin/bash
for j in 1 2 3 4 5
do
echo "for2 this is $j"
done
for k in "1 2 3 4 5"
do
echo "for3 this is $k"
done
运行结果:
类比一下,有点像C语言的宏,对于用所有参数替代掉原来的$*,将程序1和程序2中的 & *用所有参数替代掉,就能类比程序3。
四、while循环
1.基本语法
while [ 条件判断式 ]
do
程序
done
只要涉及条件判断式,就要注意中括号和式子之间的空格
2.示例演示
#!/bin/bash
sum=0
while [ $sum -lt 10 ]
do
echo "sum 加了一次"
sum=$[$sum+1]
done
运行结果: