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