需求: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