NO 1: 多重、複雜條件判斷式 之 if 結構linux
if [ 條件判斷式 ]; then 中 if 與 [、 ] 間有空格;條件判斷式與[、]間有空格;shell
若條件表達式爲 A == B一類的斷定,則 A、B與 == 間有空格;express
NO 2: 在 bash shell 中,if 語句中的 [ ] 是聲明 test命令的一種方式。bash
表達式可進行數值、字符串、文件三類的比較。函數
一:數值類比較,只能用來比較整數。spa
二:字符串比較時,有符號、命令兩種方式。ip
符號比較,如 <、> 需加轉義符號 \。 字符串
NO 3: if then 結構中 雙園括號表示數學表達式,雙方括號表示高級字符處理函數數學
(( expression )):expression 爲數學賦值表達式、數學比較表達式、自增、自減、io
邏輯操做、位操做等。表達式中沒必要轉義 <、 >操做符。
[[ expression ]]:expression 除支持 test 命令中的字符串表較外,還支持模式匹配。
NO 4: while do done,until do done 循環體中採用 (( )) 形式。
Ex: while [ "$a" != 10 ]
do
a=$(($a+1))
done
NO 5: Shell 腳本的參數
若參數爲字符串,且字符串中有空格,則應使用 ' ' 或" ";
參數多於9個時,第9個參數後,必須用 { } 將參數括起來。如: $ { 10 }、 $ { 12 } 等。
NO 6: 特殊變量 $# 表示腳本參數的個數
如:parameter=${ ! # }
當有參數時,parameter、${ ! # } 都指向最後一個參數。
參數個數爲 0 時,parameter 值爲 0,${ ! # } 值爲腳本文件名 等。
NO 7: 特殊變量 $* 、$@
均可用來一次顯示全部參數;
但在 for 循環迭代中,$* 將全部參數視爲一個字符串, $@ 則迭代每一個參數。
NO 8: 在腳本執行過程當中,使用 read 獲取用戶輸入
read 參數列表
如:read $param ,若 read 後無變量,則默認存儲在 REPLY 中
-t 選項可指定 read 等待輸入的秒數,當計數器計數滿時,read 返回非零退出狀態。
-s 選項,可以使輸入內容不顯示(事實上,read命令將輸出文本顏色設置成了背景色)。
NO 9: 空文件 null file
空文件 null file ,在 linux 系統中的位置是 /dev/null ,任何重定向到該文件的數據都會丟失。
如: cat /dev/null filname,能夠用來清空文件數據
NO 10: Linux 系統 在預約時間運行程序、腳本的3種方法
at 命令:在指定的時間點運行腳本。
batch 命令:在系統處在低負載水平時運行腳本。
cron 命令:週期式運行腳本。
Tips:
cron 程序從 cron表格 中查找需調度運行的 做業。cron 表格格式以下:
min hour dayofmonth month dayofweek command
也可包含 if - then 語句,如每個月最後一天的某一時間運行程序、腳本:
min hour * * * if [ `date + %d -d tomorrow` = 01 ] ; then ; command