Linux_shell流程控制

1. if判断

1.1. 基本语法

if [ 条件判断式 ]
then 
      代码
fi

或者多分支

if [ 条件判断式 ]
then 
      代码
elif [ 条件判断式 ]
then
      代码
fi

注意:条件判断适式中,中括号和条件判断式之间必须有空格。

1.2. 应用实例

案例: 请编写一个shell程序,如果输入的参数,大于等于60,则输出“及格了”,如果小于60,则输出“不及格”

  1. 创建一个ifCase.sh
[root@CtCentos01 shcode]# vim ifCase.sh
  1. 多个判断分支判断
#!/bin/bash
#案例: 请编写一个shell程序,如果输入的参数,大于等于60,则输出“及格了”,如果小于60,则输出“不及格”
if [ $1 -ge 60 ]
then
        echo "及格了"
elif [ $1 -le 60 ]
then
        echo "不及格"
fi

判断结果:


2. case语句

2.1. case语句

基本语法:

case $变量名 in
"值1")
如果变量的值等于值1,则执行程序1
;;
"值2")
如果变量的值等于值2,则执行程序2
;;
……省略其他分支……
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac

2.2. 应用实例

案例1:当命令行参数是1时,输出“周一”,是2时,输出“周二”,其他情况输出“other”

  1. 创建一个testCase.sh脚本
[root@CtCentos01 shcode]# vim testCast.sh
  1. 在case语句中分别讨论不同情况的输出
#!/bin/bash
#案例1:当命令行参数是1时,输出“周一”,是2时,输出“周二”,其他情况输出“other”
case $1 in
"1")
echo "周一"
;;
"2")
echo "周二"
;;
*)
echo "other......"
;;
esac
  1. 可以看到脚本的运行结果达到了预期


3. for循环

3.1. 基本语法1(离散)

for 变量 in 值1 值2 值3
do
程序
done

3.2. 应用实例

案例1:打印命令行输入的参数 [这里可以看出$*和$@的区别]

  1. 创建testFor2.sh脚本
[root@CtCentos01 shcode]# vim testFor1.sh
  1. 使用$*来获取参数为一个整体
#1/bin/bash
#案例1:打印命令行输入的参数 [这里可以看出$*和$@的区别]
#注意 $* 是把输入的参数当成一个整体,所以,只会输出一句
for i in "$*"
do
        echo "num is $i"
done

  1. 使用$@来分别获取参数
#使用 $@ 来获取输入的参数,注意,这时是分别对待,有几个参数就输出几句
echo "======================================"
for j in "$@"
do
        echo "num is $j"
done

3.3. 基本语法2(连续)

for ((初始值;循环控制条件;变量变化))
do
程序
done

3.4. 应用实例

案例1:从1加到100的值得输出显示

  1. 创建一个testFor2.sh脚本
[root@CtCentos01 shcode]# vim testFor2.sh
  1. 通过$i累加计算从1到100之和
#!/bin/bash
#案例1:从1加到100的值得输出显示
#定义一个变量 SUM
SUM=0
for((i=1;i<=100;i++))
do
#写上你的业务代码
        SUM=$[$SUM+$i]
done
echo "总和SUM=$SUM"

我们也可以吧100换成$1实现计算从1加到输入的数之和


4. while循环

4.1. 基本语法1

while [ 条件判断式 ]
do 
程序
done

注意:while和 [ 有空格,条件判断式 ]也有空格

4.2. 应用实例

案例1:从命令行输入一个数n,统计从1+……+n的值是多少?

  1. 建立脚本testWhile.sh
[root@CtCentos01 shcode]# vim testWhile.sh
  1. while实现累加
#!/bin/bash
#案例1:从命令行输入一个数n,统计从1+……+n的值是多少?
SUM=0
i=0
while [ $i -le $1 ]
do
        SUM=$[$SUM+$i]
        #i自增
        i=$[$i+1]
done
echo "执行结果=$SUM"

  • 23
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值