1

別のスクリプト内からスクリプトを呼び出そうとしています。プログラムは、UNIX メールから直接送信された電子メールを stdin として取り込み、一部を解析して新しいスクリプトに送信する必要があります。

新しいスクリプトにアクセスできません。ただし、この問題は、スクリプトが電子メールを直接受け入れる場合にのみ発生します。ファイルを cat すると、問題はなく、新しいスクリプトが見つかります。

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 に答える