流程控制
if、case、for、while
1、if判断
- 基本语法:
if [条件判断式]; then
程序
fi
或者
if [条件判断式]; then
程序
elif[条件判断式]
程序
fi
注意事项:(1)、条件判断式中,中括号和判断式执行必须有空格
(2)、推荐使用第二种方式
- 实例:
编写shell程序,如果输入的参数大于等于60,则输出“及格了”,如果小于60,则输出“不及格”
#!/bin/bash
if [ $1 -ge 60 ]
then
echo "及格了"
elif [ $1 -lt 60 ]
echo "不及格"
fi
2、case语句
- 基本语法:
case $变量名 in “值1”)
如果变量的值等于值1,则执行程序1
;;
“值2”)
如果变量的值等于值1,则执行程序2
;;
...省略其他分支
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
- 实例:当命令行参数是1时,输出“周一”,是2时,输出“周二”,其他情况输出“other”
#!/bin/bash
case $1 in
"1")
echo "周一"
;;
"2")
echo "周二"
;;
*)
echo "other"
;;
esca
3、for循环
- 基本语法1:
for 变量 in 值1 值2 值3
do
程序
done
- 实例:打印命令行输入的参数(使用$*或$@)
#!/bin/bash
#第一种方式使用$*
for i in "$*"
do
echo “the num is $i”
done
./test.sh 10 20 30
输出the num is 10 20 30
#第二种方式使用$@
for j in "$@"
do
echo “the num is $j”
done
./test.sh 10 20 30
输出:the num is 10
the num is 20
the num is 30
- 基本语法2:
for ((初始值;循环控制条件;变量变化))
do
程序
done
- 实例:
从1加到100的值输出显示
#!/bin/bash
for ((i=1;i<=100;i++))
do
SUM=$[$SUM+$i]
done
echo "sum=$SUM"
4、while循环
- 基本语法1:
while [条件判断式]
do
程序
done
- 实例:从命令行输入一个数n,统计从1+...+n的值是多少
#!/bin/bash
SUM=0
i=0
while [ $i -le $1 ]
do
i=$[$SUM+$i]
i=$[$i+1]
done
echo "sum=$SUM"