Shell语言-13-流程控制( if 判断,case 语句,for 循环,while 循环,until循环)以及循环控制

1. if 判断

1.1 基本语法

(1)[ 条件判断式 ],中括号和条件判断式之间必须有空格;
(2)if后要有空格;

1.2 单If语句

单If分支语句

if <条件表达式>
    then
 
        指令f
fi
if <条件表达式>;then

  指令f
fi

#简单记忆法:

如果 <你给我足够多的钱>
�
  那么

    我就给你干活
�
果如

#说明:<条件表达式> 可以是test、[]、[[]]、(())等条件表达式,每一个if条件语句都是以if开头,并带有then,最后以fi结尾

1.3 双If语句

if <条件表达式>
    then
 
        命令集1
 
    else
        命令集2f
fi
#简单记忆
�
如果 <你给我足够多的钱>
�
  那么
�
    我就给你干活
�
  否则
�
    我再考虑一下
�
果如

1.4 多If语句

if <条件表达式1>
    then
 
        指令集1
 
    elif <条件表达式2>
        then
 
            指令集2
 
    elif <条件表达式3>
        then
 
            指令集3     
 
    else
        指令集4f
fi

#提示:如果加elif,那么就要加then,每个elif都要带有then,最后结尾的else后面没有then

#简单记忆
如果 <你有房>
    那么
        我就嫁给你
    或者如果 <你家里有钱>
        那么
            我也可以嫁给你
    或者如果 <你很努力很吃苦>
        那么
          我们可以先谈谈男女朋友
    否则
        我们没戏
�
果如

2. case 语句

2.1 基本语法

(1) case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
(2) 双分号“;;”表示命令序列结束,相当于java中的break。
(3) 最后的“*)”表示默认模式,相当于java中的default。

case "变量" in

    值1)
         指令1...
  如果变量的值等于1则执行指令1
          ;;
 
    值2)
         指令2...
 如果变量的值等于2则执行指令2
          ;;
    *) 
         指令3...
如果变量的值不等于以上的任何列值则执行默认指令
esac

#说明:当变量的值等于1时,那么就会相应的执行指令1的相关命令输出,值等于2时就执行指令2的命令,以此类推,如果都不符合的话,则执行*后面的指令,要注意内容的缩进距离

2.2案列

[root@Centos-root473791 ~]# cat caseD.sh 
#! /bin/bash

case $1 in
"1")
        echo "1"
;;

"2")
        echo "2"
;;
*)
        echo "other"
;;
esac
[root@Centos-root473791 ~]# sh caseD.sh  1
1
[root@Centos-root473791 ~]# sh caseD.sh  2
2
[root@Centos-root473791 ~]# sh caseD.sh  3
other
[root@Centos-root473791 ~]# 

3. for 循环

3.1基本语法1

for  变量  in  值集合
do
   执行命令
done

案列1,创建文件夹

 for  i  in {1..10}
   do
       mkdir -p /datas/demo$i
       for o in {1..10}
       do
         mkdir  /datas/demo$i/test$o
       done
   done

案列2 打印数字

[root@Centos-root473791 ~]# cat forD.sh 
#! /bin/bash
#打印数字

for i in 1 2 3
    do
      echo "The num is $i "
    done
[root@Centos-root473791 ~]# sh forD.sh 
The num is 1 
The num is 2 
The num is 3 
[root@Centos-root473791 ~]# 

3.2 基本语法2

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

案列3 从0加到100

[root@Centos-root473791 ~]# cat forD2.sh 
#! /bin/bash

s=0
for((i=0;i<=100;i++))
do
        s=$[$s+$i]
done
echo $s
[root@Centos-root473791 ~]# sh forD2.sh 
5050
[root@Centos-root473791 ~]# 

4.while循环

4.1 基本语法

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

while语法说明,while首先进行条件测试,如果传回值为0(条件测试为真),
则进入循环,执行命令区域,否则不进入循环。
满足while测试条件,执行命令区域,直到while的测试条件不满足结束执行
while循环(如果条件一直满足执行无穷循环)

案列1 从0加到100

[root@Centos-root473791 ~]# cat whileD.sh 
#! /bin/bash
s=0
i=1
while [ $i -le 100 ]
do
        s=$[$s+$i]
        i=$[$i+1]
done

echo $s
[root@Centos-root473791 ~]# sh whileD.sh 
5050

案列2

#! /bin/bash
declare -i i=1    #声明设置i和sum为整数型
declare -i sum=0
while ((i<=10))  #while条件测试,只要i值小于或等于10,就执行循环
do
   let sum+=i   #sum+=i 和sum=sum +i 是一样的,sum累加i
   let i++     #let i++, i的值递增,此行是改变条件测试的命令
done          # 遇到done,回到while条件测试
echo $sum     # 直到while条件不满足,显示sum的值

5. Shell循环控制

break continue exit 一般用于循环结构中控制循环的走向

 break n      n表示退出循环的次数,如果省略n表示跳出整个循环
 continue     n表示退到第n层继续循环,如果省略n表示跳过本次循环进入下一次循环
 exit n       退出当前的shell程序,并返回n,n也可以省略
 return       用于返回一个退出值给调用的函数
 shift        用于将参数列表list左移指定次数,最左端的那个参数就从列表中删除,其后边的参数                  进入循环  

6 until循环语句

while循环的条件测试是测试真值,until循环则是测试假值

until循环的语法结构
until 条件测试
do
  执行命令
done
#!/bin/bash
declare -i i=10         #声明i和sum为整数型
declare -i sum=0
until ((i>10))          #条件测试:只要i值未超过10,就进入循环
do
  let sum+=i           #sum+=i和sum=sum+i是一样的,sum累加上i
  let ++i              #i的值递增1,此行是改变条件测试的命令,一旦i大于10,可终止循环
done                   #遇到done ,回到until条件测试
echo $sum              #直到until的条件满足显示sum的值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alan0517

感谢您的鼓励与支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值