bash - $ PWD没有列出文件名(只有文件路径)

时间:2013-02-05 16:44:09

标签: bash

我对bash脚本完全不熟悉,但是我遇到了php的sendmail路由的以下脚本,因此我可以跟踪垃圾邮件发送者可能包含的任何脚本。

这很好用但是$ PWD变量没有显示文件名,它只显示文件的工作目录。

Bash脚本:/ usr / local / bin / sendmail2

#!/bin/sh
# Logging sendmail wrapper

SENDMAIL="/usr/sbin/sendmail -t -i"
LOGFILE="/home/mail.log"

DT=`date "+%Y-%m-%d %H:%M:%S"`
DTFN=`date "+%Y%m%d-%H%M%S"`
#TMPFP=`tempfile --prefix=lsm_`
TMPFP=`mktemp`

cat | tee "$TMPFP" | $SENDMAIL $*
RETVAL=$?

TO=`grep "To:" <"$TMPFP"`
rm -f "$TMPFP"

echo "$DT: $PWD sent $TO" >> $LOGFILE

exit $RETVAL

测试脚本:/home/mysite/test.php:

<?php
$to = "my@email.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "my@email.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>

的php.ini:

sendmail_path = "/usr/local/bin/sendmail2"

1 个答案:

答案 0 :(得分:2)

嗯,${PWD}是“打印工作目录”的缩写(pwd是该命令),因此它只会为您提供工作目录。这是设计的。

另外,工作目录不一定与脚本的完整路径有任何关系(既不是你的sendmail2脚本,也不是调用sendmail2的php脚本。)