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"

结果展示:


上一篇下一篇

猜你喜欢

热点阅读