Shell編程之case語句與循環語句

case多分支語句

循環語句

  • for循環語句
  • while循環語句
  • untli循環語句

Shell函數

Shell數組

case語句的結構

  • 針對變量的不一樣取值,分別執行不一樣的命令序列
case 變量值 in
模式1)
  命令序列1
  ;;
模式2)
  命令序列2
  ;;

  ......
*)
  默認命令序列
esac
[root@localhost ~]# vim demo13.sh      //編輯示例
#!/bin/bash
read -p "請輸入一個字符:" a              //交互指令
case $a in                             //編輯case語句
 [a-z]|[A-Z])                          //模式1
      echo "輸入的是字母"                //輸出提示信息
 ;;
 [0-9])                                //模式2
      echo "輸入的是數字"                //輸出提示信息
 ;;
 *)                                    
      echo "輸入的是特殊符號"
esac                                    //結束語句

for語句結構

  • 讀取不一樣的變量值,用來逐個執行同一組命令shell

    for 變量名 in 取值列表
    do
    命令序列
    done
  • 使用場景
    • 指定次數循環 for(int i=0;i<=10;i++)
    • 遍歷循環(加強循環 foreach) for(int num:sum)
[root@localhost ~]# vim demo06.sh
#!/bin/bash
for ((i=1;i<=10;i++))   //循環條件  
do
 echo $i          //輸出i變量
done
[root@localhost ~]# vim aa.txt   //建立txt文檔
zhangsan
wangwu                           //輸入信息
lisi
zhaoliu
~
:wq
[root@localhost ~]# vim demo07.sh     //編輯循環腳本
#!/bin/bash
TMP=$(cat /root/aa.txt)             //設置變量  
for user in $TMP                     //編寫循環
do
 echo "用戶是$user"                  //輸出文檔信息
done

while語句的結構

  • 重複測試某個條件,只要條件成立則反覆執行vim

    while 條件測試操做
    do
    命令序列
    done
[root@localhost ~]# vim demo10.sh
#!/bin/bash
num=1                        //聲明變量
while [ $num -le 10 ]        //編輯while循環
do
 echo $num                  //輸出循環結果
 let num++;                 //等同於num=`expr $num+1`
done

nutil語句結構

  • 重複測試某個條件,只要條件不成立則反覆執行數組

    nutil  條件測試操做
    do
    命令序列
    done
    [root@localhost ~]# vim demo15.sh      
    #!/bin/bash
    i=0                          //設置賦值變量
    s=0
    until [ $i -eq 51 ];do      //編輯until語句
    let s+=i;let i++         //計算1-50的求和過程
    done
    echo $s                     //輸出求和數值

Shell函數

  • 將命令序列按格式寫在一塊兒 (封裝)bash

  • 可方便重複使用命令序列ide

  • Shell函數定義函數

    [function] 函數(){
        命令序列
        [return x]       //使用return或exit能夠顯示地結束函數
    }
    [root@localhost ~]# vim demo17.sh
    #!/bin/bash
    sum(){             //設置函數名
    #命令序列
    s=`expr 2 + 2`     //編輯函數命令序列
    echo $s           //輸出計算結果
    }
    sum                 //調用輸出函數
  • 調用函數的方法測試

    • 函數名 [參數1] [參數2]
[root@localhost ~]# vim demo18.sh
#!/bin/bash
sum(){
  s=`expr $1 + $2`      //使用位置變量計算
  echo $s
}
sum 2 2              //函數名後添加位置變量

Shell數組

應用場景包括

  • 獲取數組長度
  • 獲取元素長度
  • 遍歷元素
  • 元素切片
  • 元素替換
  • 元素刪除
  • ......

數組定義方法

  • 方法一code

    數組名=(value0 value1 value2 ...)文檔

  • 方法二it

    數組名=([0]=value [1]=value [2]=value ...)

  • 方法三

    列表名="value0 value1 value2 ..."

    數組名=($列表名)

  • 方法四

    數組名[0]="value"

    數組名[1]="value"

    數組名[2]="value"

數組包括的數據類型

  • 數值類型

  • 字符類型

    使用""或''定義

shell數組操做

獲取數組長度

  • ${#數組名[@/*]}
[root@localhost ~]# num=(11 22 33 44 55)    //定義數組
[root@localhost ~]# len=${#num[*]}          //數組長度賦值給len
[root@localhost ~]# echo $len               //輸出數組長度
5

讀取某下標賦值

  • ${數組名[下表]}
[root@localhost ~]# num=(11 22 33 44 55)     //定義數組
[root@localhost ~]# a=${num[0]}              //賦值數組下表
[root@localhost ~]# echo $a                  //輸出下表
11
[root@localhost ~]# a=${num[1]}
[root@localhost ~]# echo $a
22

數組遍歷

[root@localhost ~]# num=(11 22 33 44 55)   //定義數組
[root@localhost ~]# for i in ${num[*]}     //使用for循環遍歷數組
> do   
> echo $i                                  //輸出數組
> done
11
22
33
44
55
相關文章
相關標籤/搜索