03 shell編程之case語句與函數
本文所有內容均來自當年博主當年學習筆記,若有不足歡迎指正
Shell編程之case語句與函數
學習目標:
掌握case語句編程
掌握shell函數的使用
目錄結構:
Case語句
Case語句的作用
l 使用case語句改寫多分支可以使腳本結構更加清晰,層次分明
l 針對變量不同取值,執行不同的命令序列
Case語句的結構
case 變量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*)
默認命令序列
csac
case變量=模式1 ?是,則執行命令序列1,否,則判斷變量=模式2 ?是,則執行命令序列2,否,則判斷變量=模式3 ?是,則執行命令序列3,否,則執行默認命令序列。
實例:
l 擊鍵類型識別腳本,判斷輸入的是字母還是數字還是其他字符
[root@poll ~]# vi a.sh
#!/bin/bash
#this is zifupanduan
read -p "請輸入一個字符:" key
case $key in
[a-z]|[A-Z])
echo "您輸入的是字母。"
;;
[0-9])
echo "您輸入的是數字"
;;
[/]|[?]|[,])
echo "您輸入的是$key"
;;
*)
echo "您輸入的是其他字符"
esac
shell函數
l 將命令序列按格式寫在一起
l 可方便重復使用命令序列
l Shell函數定義
[function] 函數名(){
命令序列
[return x]
}
l 調用函數的方法
[root@poll ~]# vi sum.sh
#!/bin/bash
#this is SUM
SUM(){
echo "這是一個求和運算"
read -p "請輸入第一個數:" A
read -p "請輸入第二個數:" B
echo "你輸入的兩個數分別為:$A $B"
SUM=$(($A+$B))
echo "兩個數的和為:$SUM"
#return $(($A+$B))
}
SUM
#echo "兩個數的和為:$?"
l Linux系統中有很多服務器啟動腳本
定義了豐富的shell函數
嵌套了各種語句,如if語句等
可參考其編寫的服務器啟動腳本
[root@poll scripts]# vi /etc/init.d/network …… if [ -f /etc/sysconfig/pcmcia ]; then . /etc/sysconfig/pcmcia fi
# Check that networking is up. [ "${NETWORKING}" = "no" ] && exit 6
# if the ip configuration utility isn‘t around we can‘t function. [ -x /sbin/ip ] || exit 1
CWD=$(pwd) cd /etc/sysconfig/network-scripts …… |
本章初步結束,下一節講循環語句
03 shell編程之case語句與函數