30.shell编程-流程控制
if语句
-
语法
-
if [ 条件判断式 ]
then
代码
fi
-
if [ 条件判断式 ]
then
代码
elif [ 条件判断式 ]
then
代码
fi
-
-
#!/bin/bash #案例:编写一个shell程序,如果输入的参数大于等于60,则输出“及格了”,如果小于60,则输出“不及格” if [ $1 -ge 60 ] then echo "及格了" elif [ $1 -lt 60 ] then echo "不及格" fi
case语句
-
语法:
-
case $变量名 in
"值1")
如果变量值等于值1,则执行程序1
;;
"值2")
如果变量值等于值2,则执行程序2
;;
...省略其他分支...
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
-
-
#!/bin/bash #案例1:当命令行参数是1时,输出“周一”,是2时,输出“周二”,其他情况输出“other” case $1 in "1") echo "周一" ;; "2") echo "周二" ;; *) echo "other" ;; esac
for循环
-
语法1:
-
for 变量 in 值1 值2 值3
do
程序
done
-
-
案例:testFor1.sh
#!/bin/bash
#案例1:打印命令行输入的参数【这里可以看出$*和$@的区别】
#注意 $*是把输入的参数当作一个整体,所以只会输出一句话
for i in "$*"
do
echo "num is $i"
done
#使用$@来获取输入的参数,会分别对待,而不是当作一个整体
echo "================================"
for j in "$@"
do
echo "num is $j"
done
-
语法2:
-
for (( 初始值; 循环控制条件; 变量变化 ))
do
程序
done
-
-
案例:testFor2.sh
#!/bin/bash
#案例1:从1加到100的值输出显示
SUM=0
for(( i=1; i<=100; i++))
do
SUM=$[$SUM+$i]
done
echo "总和SUM=$SUM"
while循环
-
语法:
-
while [ 条件判断式 ]
do
程序
done
-
-
案例:testWhile.sh
#!/bin/bash
#案例1:从命令行输入一个数n,统计从1+..+n的值是多少
SUM=0
i=1
while [ $i -le $1 ]
do
SUM=$[$SUM+$i]
i=$[$i+1]
done
echo "执行结果=$SUM"
浙公网安备 33010602011771号