一段shell脚本分析

工作中碰到这样的需求:
1、每天定时要执行python脚本生成excel
2、将生成的excel拷贝到特定目录下
3、通过python发送脚本发送给特定的接收者

因为之前没有接触过shell脚本,同事帮忙写了一份,具体内容如下。

#!/bin/bash                                                                      
                                                                                 
. ~/.bash_profile                                                                
. ~/virtualenv/bin/activate                                                      
                                                                                 
dt=`date +'%Y-%m-%d'`                                                            
day=`date +'%Y%m%d'`                                                             
                                                                                 
cd virtualenv/report                                                             
python main.py --table 催收DL $dt                                                
python main.py --table 催收DR $dt                                                
python main.py --table 催收DZ-BH $dt                                             
python main.py --table 催收DZ-SS $dt                                             
python main.py --table 催收DZ-TL $dt                                             
python main.py --table 催收HW $dt                                                
python main.py --table 催收SH $dt                                                
python main.py --table 催收XC $dt                                                
python main.py --table 催收YFT $dt                                               
python main.py --table 催收ZC $dt                                                
                                                                                 
cp excel/催收*$day* ~/virtualenv/report/sendxls/ && python cui_mail.py $dt 

基本思路:
定时器用crontab进行设定,定时执行脚本,并将输出存到日志。

3 12,14,16,18,23 * * * /home/report/virtualenv/report/cuishou.sh >> /home/report/log.log 2>&1

昨天分析过了crontab的格式,上面表示每天的12:03,14:03,16:03,18:03,23:03定制执行cuishou.sh脚本和写入日志。

下面就结合脚本分析下shell的常见知识点。
. 执行脚本所需要的环境
` 优先执行
date +'%Y-%m-%d' 日期格式转换
date +'%Y%m%d 日期格式转换
$dt 传递参数
&& 前面脚本执行成功后执行后面的脚本

原文地址:https://www.cnblogs.com/everfight/p/shell.html