因此,我正在构建一个脚本,以根据 SQL DB 的输出检查一堆文件中存在某些错误的文件。有错误的文件将通过邮件发送给我。
问题是当我尝试发送邮件时,如果我在创建 PATH 变量之前发送邮件,我会收到消息“script.sh: 9: mutt: not found”。
该脚本如下所示:
JOB=$(sudo cat /tmp/sqltest.txt | awk '{ print $5 }')
DATE=$(sudo cat /tmp/sqltest.txt | awk '{ print $1 }')
CODE=$(sudo cat /tmp/sqltest.txt | awk '{ print $3 }')
PATH=$(grep ${CODE} /tmp/unzip/* | awk '{ print $1 }' | cut -d':' -f1 | head -n 1)
echo "File containing error message for job "${JOB}" at "${DATE}"" | mutt -a "/tmp/sqltest.txt" -s "Mail title" -- <mail@address>
简而言之,grep 找到错误代码所在的文件,awk 选择带有文件路径的列,该列还带有一个时间戳,该时间戳将删除并且 head 确保我只得到一个结果,如果报告错误几个地方。
如果我在变量 CODE 而不是 PATH 之后使用 mutt,我可以使用 mutt 发送邮件,但不幸的是我需要 PATH 而不是 /tmp/sqltest.txt
您对可能导致这种情况的原因有任何想法吗?