case 選單選擇列印
語法:case var in var變數
patten 1) 匹配模式1 a|b|c |和or類似
command... 需要執行的命令
;; 命令執行完畢
patten 2)
command...
;;*) 預設值,沒有匹配的模式
command...
;;esac 代表case語句的結束
demo1:當給程式輸入start|s時,顯示service is running!;stop——>service is stoped;...
#!/bin/bash
#read -p "請輸入引數:" var
case
$1in
start|s)
echo service is running
;;stop)
echo service is stoped
;;reload)
echo service is reload
;;*)
echo ***xx
;;esac
demo2:相互巢狀
#!/bin/bash
read -p "小明,你喜歡我嗎?(喜歡|不喜歡|愛你):" love
case
$love
in 喜歡)
echo
"我也喜歡你"
;;不喜歡)
read -p "那你喜歡誰?" who
case
$who
in 小紅)
echo
"她是我的閨蜜"
;;小彭)
echo
"額..拜拜"
;;*)
echo
"我們不合適"
;;esac
;;*)
echo
"你到底什麼意思?"
;;esac
demo3:維護選單選擇
#!/bin/bash
echo
"*********welcome to uplooking*********"
echo
"*********選擇操作型別*******************"
echo
"**********1——系統**********************"
echo
"**********2——程式**********************"
echo
"**********3——資料庫********************"
echo
"**********0——退出**********************"
read -p "請選擇操作型別:" choose
case
$choose
in1)
echo
"你選擇的型別是系統維護"
;;2)
echo
"你選擇的是程式"
;;3)
echo
"*********welcome to uplooking*********"
echo
"*********選擇操作型別*******************"
echo
"**********1——備份**********************"
echo
"**********2——資料匯入匯出****************"
echo
"**********0——退出**********************"
read -p "請你輸入對資料庫的操作:" choose1
case
$choose1
in0)
echo
"退出"
;;1)
echo
"備份資料庫"
;;2)
echo
"匯入匯出"
;;*)
echo
"你要幹啥?"
;;esac
;;0)
exit
;;esac
課堂練習:
1、輸入乙個等級(a—e),檢視每個等級的成績;如輸入a,則顯示"90分~100分";依次類推
2、模擬乙個2人相親的場景,互動式輸入名字、性別、年齡(年齡放在性別判斷後)
1>對性別進行判斷,如果不輸入男或者女,則顯示「你是泰國來的碼?」如果是男的則對年齡判斷:
2>男的年齡大於18歲則顯示「某某先生,你結婚了碼?」;如果對方回答yes或者結了,則顯示「那你來著湊什麼熱鬧?」;如果對方回答no或者沒結,則再次詢問「那你有房有車嗎?」;如果既不說結了也不說沒結,則顯示「你到底有沒有結婚??」
3>問有房有車嗎,對方回答有,則顯示「咱們去民政局領證吧,正好今天是七夕!」;如果對放回答沒有,則顯示「不好意思,我去下洗手間...」;如果即不回答有也不回答沒有,則顯示「請正面回答我的問題??」
4>男的年齡如果小於18歲,則顯示「你個小貓孩來著幹啥,不好好讀書」
5>如果是女的,並且年齡大於18歲,則顯示「某某女士,您好」;否則顯示「某某小姐,您好」
函式:語法結構:
方法1:
function function_name
()方法2:
function_name
()return:作用
1、用來返回乙個值給函式,主函式可以呼叫該返回值 0~256
return
22、用來結束函式
demo1:
#!/bin/bash
function hello
()world
()函式呼叫:
1、直接在終端呼叫
# source fun1.sh
[root@node1 shell03]# hello uplooking
hello
uplooking
[root@node1 shell03]# world 888
hi888
2、寫到全域性的環境變數檔案裡
vim /etc/profile
...function hello
()world
()3、指令碼裡呼叫
#!/bin/bash
function hello
()#read -p "請輸入引數:" var
case
$1in
start|s)
hello uplooking
echo service is running
;;stop)
hello 66666;
echo service is stoped
;;reload)
echo service is reload
;;*)
hello 7777;echo ***xx
;;esac
demo:批量建立3個使用者user1~user3;使用者的附加組為admin組;密碼為123
#!/bin/bash
g=admin
groups
()users
() do
useradd -g $g user$i
echo
123|passwd --stdin user$i
done
}grep -w admin /etc/group &>/dev/null
if [ $? -ne
0 ];then
groups
users
else
users
fi作業:
寫指令碼自動搭建web服務,要求如下:
1、基於網域名稱的虛擬主機(dns可以用指令碼也可以寫到hosts檔案中即可)
2、訪問www.myweb.com——>this is myweb test page
3、web伺服器的ip和主機名互動式的從外部輸入,並且如果不輸入一致提示輸入
在指令碼中可以先寫乙個函式,目的是如果不輸入相應的內容則一致提示輸入
4、搭建完後要顯示測試是否成功
5、根據自己的想法可以是該指令碼更豐富
預習:sed
shell case語句多分支判斷
shell指令碼,case多條件判斷語法基本格式 bin bash op 1 case in 條件1 cmd 1 cmd 2 條件2 cmd 1 cmd 2 cmd 1 cmd 2 exit 1 可以加退出值 esaccase取值後面必須為關鍵字 in,每一模式必須以右括號結束。條件1 條件2 取值...
shell case的用法及shell如何執行
bin sh case 1 in echo print infomation nnnnnnnnqwerty echo print information ndsf lgkjsdflkgjsdfljgsjfdlgslflk 1 echo print information 1 esac 上面為乙個sh...
oracle實用語句及函式記錄
查詢插入 insert into table a col1,col2 select col1,col2 from tab b where condition 補齊函式 lpad col1,length,a 左邊補齊函式,用於處理資料,將col1列的資料,格式化成固定length長度的字元,不足長度時...