Shell Scripts 備忘錄 (Updating)

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

相關文章
相關標籤/搜索