bash腳本的編寫,對于Linux這個多用戶,多任務的系統,有很大的幫助,腳本可以幫助我們定時執行任務,過濾文本,檢查系統性能等等。下面我們來了解一下過程式和循環式腳本的編寫。
使用read 命令來接受輸入
使用read 來把輸入值分配給一個或多個shell 變量:
-p 指定要顯示的提示
-t TIMEOUT
read 從標準輸入中讀取值,給每個單詞分配一個變量,所有剩余單詞都被分配給最后一個變量。
read -p “Enter a filename: “ FILE
過程式編程語言分為三種:1.順序執行 2.選擇執行 3.循環執行
條件選擇if 語句
選擇執行:
注意:if 語句可 嵌套
單分支
if 判斷條件:then
條件為真的分支代碼
fi
雙分支
if 判斷條件; then
條件為真的分支代碼
else
條件為假的分支代碼
fi
多分支
if CONDITION1 ; then
if-true
elif CONDITION2 ; then
if-true
elif CONDITION3 ; then
if-true
…
else
all-false
fi
逐條件進行判斷,第一次遇為“真”條件時,執行其分支,而后結束整個if 語句。
if 實例
1 、寫一個腳本/root/bin/createuser.sh ,實現如下功能:使用一個用戶名做為參數,如果指定參數的用戶存在,就顯示其存在,否則添加之;顯示添加的用戶的id 號等信息
條件判斷:case 語句
case 變量引用 in
PAT1)
分支1
;;
PAT2)
分支2
;;
…
*)
默認分支
;;
esac
case 支持glob 風格的通配符:
*: 任意長度任意字符
?: 任意單個字符
[] :指定范圍內的任意單個字符
a|b: a或b
case 實例
1,寫一個腳本/root/bin/yesorno.sh ,提示用戶輸入yes或no, 并判斷用戶輸入的是yes還是no,
循環執行:將某代碼段重復運行多次
重復運行多少次:
循環次數事先已知
循環次數事先未知
有進入條件和退出條件
分為三種:for, while, until
for 循環
for 變量名 in 列表;do (for的變量名可以不用加$符號)
循環體
done
執行機制 : 依次將列表中的元素賦值給“變量名“; 每次賦值后即執行一次循環體; 直到列表中的元素耗盡,循環結束。
列表生成方式:
(1) 直接給出列表
(2) 整數列表:
(a) {start..end}
(b) $(seq [start [step]] end)
(3) 返回列表的命令
$(COMMAND)
(4) 使用glob,如:*.sh
(5) 變量引用;
$@, $*
for實例
1,用for編寫一個99乘法表。
while 循環
while CONDITION; do
循環體
done
CONDITION :循環控制條件;進入循環之前,先做一次判斷;每一次循環之后會再次做判斷;條件為“true",則執行一次循環;直到條件測試狀態為“false”終止循環.
因此:CONDTION 一般應該有循環控制變量;而此變量的值會在循環體不斷地被修正
進入條件:CONDITION 為true;(真)
退出條件:CONDITION 為false ;(假)
while實例
1,用while編寫一個99乘法表。
until 循環
until CONDITION; do
循環體
done
進入條件: CONDITION 為false (假)
退出條件: CONDITION 為true(真)
until示例:
1、隨機生成10 以內的數字,實現猜字游戲,提示比較大或小,相等則退出
循環控制語句continue :用于循環體中
continue [N] :提前結束第N 層的本輪循環,而直接進入下一輪判斷;最內層為第1層。
while CONDTIITON1; do
CMD1
…
if CONDITION2; then
continue
fi
CMDn
…
done
循環控制語句break:用于循環體中
break [N] :提前結束第N 層循環, 最內層為第1層。
while CONDTIITON1; do
CMD1
…
if CONDITION2; then
break
fi
CMDn
…
done
循環控制語句exit:用于循環體中
exit :直接結束整個循環,后面的不再執行。
創建無限循環
while true; do
循環體
done
until false; do
循環體
Done
原創文章,作者:AN0519,如若轉載,請注明出處:http://www.www58058.com/38874