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 //結束語句
讀取不一樣的變量值,用來逐個執行同一組命令shell
for 變量名 in 取值列表 do 命令序列 done
[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
重複測試某個條件,只要條件成立則反覆執行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 條件測試操做 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 //輸出求和數值
將命令序列按格式寫在一塊兒 (封裝)bash
可方便重複使用命令序列ide
Shell函數定義函數
[function] 函數(){ 命令序列 [return x] //使用return或exit能夠顯示地結束函數 }
[root@localhost ~]# vim demo17.sh #!/bin/bash sum(){ //設置函數名 #命令序列 s=`expr 2 + 2` //編輯函數命令序列 echo $s //輸出計算結果 } sum //調用輸出函數
調用函數的方法測試
[root@localhost ~]# vim demo18.sh #!/bin/bash sum(){ s=`expr $1 + $2` //使用位置變量計算 echo $s } sum 2 2 //函數名後添加位置變量
方法一code
數組名=(value0 value1 value2 ...)文檔
方法二it
數組名=([0]=value [1]=value [2]=value ...)
方法三
列表名="value0 value1 value2 ..."
數組名=($列表名)
方法四
數組名[0]="value"
數組名[1]="value"
數組名[2]="value"
數值類型
字符類型
使用""或''定義
[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