1

我正在尝试从另一个脚本中调用一个脚本。这个想法是程序应该接收直接从 unix 邮件作为标准输入发送给它的电子邮件,然后解析一些内容并将其发送到新脚本。

我无法到达新脚本。但是,仅当脚本直接接受电子邮件时才会出现此问题。如果我将文件放入其中,则没有问题,它会找到新脚本。

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,我只是得到一个空行,所以我认为它甚至没有设置,所以我不知道这怎么可能是一个问题

4

1 回答 1

0

使用 Bash 将输出保存到变量时,我通常会这样做

read issue < <(~/bin/makeissue.sh)
echo "$issue"

如果输出是多行,你可以这样做

read -d'' issue < <(~/bin/makeissue.sh)
echo "$issue"

或这个

mapfile issue < <(~/bin/makeissue.sh)
echo "${issue[@]}"
于 2012-08-15T22:13:28.253 回答