Linux_Shell脚本编程之流程控制
2021-07-07 本文已影响0人
让你变好的过程从来都不会很舒服
if判断
基本语法:
if [条件判断式]
then
代码
elif [条件判断式]
then
代码
fi
注意事项:【条件判断式】,中括号和条件判断式之间必须有空格
应用实例 ifCase.sh
案例:请编写一个shell程序,如果输入的参数,大于等于60,则输出“及格了”,如果小于60,则输出“不及格”
#!/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
应用实例
案例一:当命令行参数是 1 时,输出“周一”,是2,输出“周二”,其他情况输出“other”
#!/bin/bash
case $1 in
"1")
echo "变量是一,执行此程序"
;;
"2")
echo "变量是二,执行此程序"
;;
*)
echo "其他变量,执行此程序"
;;
esac
image.png
for循环
基本语法1
for 变量 in 值1 值2 值3...
do
程序/代码
done
应用实例 testFor1.sh
案例一:打印命令行输入的参数【这里可以看出@ 的区别】
#!/bin/bash
#案例一:打印命令行输入的参数【这里可以看出* 和@ 的区别】
#注意:$* 是把输入的参数,当作一个整体,所以只会输出一句话
for i in "$*"
do
echo "number is $i"
done
#使用 $@ 来获取输入的参数,注意,这时是分别对待,所以有几个参数,就会输出几句
echo "================================================="
for j in "$@"
do
echo "number is $j"
done
基本语法2
for((初始值;循环控制条件;变量变化))
do
程序
done
应用实例 testFor2.sh
案例一:从1加到100的值输出显示
#!/bin/bash
#案例一:从1加到100的值输出显示
#定义一个变量SUM
SUM=0
for(( i=1; i<=$1; i++ ))
do
#写上你的业务代码
SUM=$[$SUM+$i]
done
echo "总和=$SUM"
image.png
while循环
基本语法:
while [条件判断式]
do
程序
done
注意:while和【有空格 ; 条件判断式和】也有空格
应用实例:
案例1:从命令行输入一个数n,统计从1+2+...+n的值有少
#!/bin/bash
#案例1:从命令行输入一个数n,统计从1+2+...+n的值有少
SUM=0
i=0
while [ $i -le $1 ]
do
SUM=$[$SUM+$i]
# i自增
i=$[$i+1]
done
echo "执行结果=$SUM"
结果展示: