我已经接管了一个脚本,该脚本将我们数据库中的一些文件发送给客户。它有一个.cfg
包含配置变量的.cmd
文件和一个执行实际脚本的文件。
例如,在.cfg
文件中设置了电子邮件正文,即:
# --- EMAIL BODY BEGIN ---
# Please see attached report.
#
# Report generated on `date +"%A %d %B %Y"`
# --- EMAIL BODY END ---
中提取此信息的部分.cmd
是:
if [ "$4" != "" ]
then
mail_body_begin=`cat $CFGFILE | grep -n "^# --- $4: EMAIL BODY BEGIN ---" |head -1 | cut -d: -f1`
mail_body_end=`cat $CFGFILE | grep -n "^# --- $4: EMAIL BODY END ---" | hea -1 | cut -d: -f1`
fi
if [ "$4" == "" -o "$mail_body_begin" == "" -o "$mail_body_end" == "" ]
then
mail_body_begin=`cat $CFGFILE | grep -n "^# --- EMAIL BODY BEGIN ---" | hea -1 | cut -d: -f1`
mail_body_end=`cat $CFGFILE | grep -n "^# --- EMAIL BODY END ---" | head -1| cut -d: -f1`
fi
mail_body_end=`expr $mail_body_end - 1`
mail_body_len=`expr $mail_body_end - $mail_body_begin`
cat $CFGFILE | head -$mail_body_end | tail -$mail_body_len | cut -c3- >> $MAIL_IN
我个人将其添加date +"%A %d %B %Y"
到电子邮件正文中,但它不会被自动扩展.cmd
(因此用户只会看到date
命令等)。我已经看了一段时间,但似乎看不出问题出在哪里。