我已经接管了一个脚本,该脚本将我们数据库中的一些文件发送给客户。它有一个.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命令等)。我已经看了一段时间,但似乎看不出问题出在哪里。