我正在尝试从另一个脚本中调用脚本。 这个想法是程序应该接受直接从Unix邮件发送给它的电子邮件作为stdin,然后解析一些东西并将其发送到新脚本。
我在访问新脚本时遇到问题。 但是,仅当脚本直接接受电子邮件时,才会发生此问题。 如果我将文件放入其中,则没有问题,它会找到新脚本。
IE:如果我有一个名为" email.txt
"的测试文件,我执行命令:
cat email.txt | ./receiveEmail.sh
然后脚本调用工作正常。
但是,如果receiveEmail.sh
直接收到电子邮件,则无法调用新脚本。 我知道这是它失败的地方,因为我得到的日志表明脚本一直工作到它尝试调用新脚本的位置。
--------receiveEmail.sh----------
#!/bin/bash
###do some stuff to parse the stdin coming in and get variable $subject and $body
issue=`. /home/dlaf/bin/makeissue.sh` ->>>> this is the line that doesn't seem to work when the input is straight from the email rather than from a txt file i send it.
我很困惑为什么。 我想这可能是因为我错过了路径的某些部分? 也许收到的电子邮件不知道我的完整路径实际上是什么? 我不确定,因为当我输入命令行时echo $LD_LIBRARY_PATH
我只会得到一个空行,所以我认为它甚至没有设置,所以我不知道这怎么会是一个问题
使用 Bash 将输出保存到变量时,我通常会这样做
read issue < <(~/bin/makeissue.sh)
echo "$issue"
如果输出是多行,您可以执行此操作
read -d'' issue < <(~/bin/makeissue.sh)
echo "$issue"
或者这个
mapfile issue < <(~/bin/makeissue.sh)
echo "${issue[@]}"