Shell 腳本調試經驗-1

需求:Linux Crontab 調度時間解析, 顯示某段時間內被調用的作業列表。

功能1:解析Crontab 調度時間。分別計算有效的分,時,日,月,周 值。

1. * 星號有特殊含義,列出當前目錄下所有的文件列表。因此變量中有*星號時,需要特別把變量用“”雙引號引起來以防止轉義。

schd_date_init_arrary=(*)

echo $schd_date_init_arrary

顯示:CheckSchd.sh desktop.ini ssh.tst test.sh tmp

schd_date_init_arrary=("*")

echo $schd_date_init_arrary
顯示:*
 

2. ${arrary_var[@]} 表示數組的全部內容

 

3. while read -r line  #-r選項保證讀入的內容是原始的內容,意味着反斜槓轉義的行爲不會發生
   do 

   done < $crontab_list_file

 

4. 字符串分割轉換爲數組

百度上的通常做法如下:

IFS=‘,’ #先設置系統默認的分割符爲, 逗號。

str="1,2,3,4,*,5"

array=($str)

SHELL=/bin/zsh 這時字符串沒有按預期分割,數組中包含一個元素即未分割的字符串。改動如下:

array=(`echo $str`)

字符串成功被分割並賦值到數組

5. 條件表達式運算

a大於1 並且 b等於(2,3)中的一個,表達式如下:

if [ a -gt 1 ] && [ b -eq 2 -o b -eq 3 ]; then

fi

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章