0

シェルスクリプトで複数のファイルを電子メールの添付ファイルとして送信する必要があります。以下のコマンドを使用しました。

(printf "%s\n" "BODY"; uuencode out.txt out.txt ; uuencode asgda.txt asgda.txt ) | mailx -m -s "TEST" emailid@domain.com

ただし、添付ファイルとして送信するファイルの数は動的です。だから私は uu​​encode ... コマンドを変数に割り当ててから使用したいと思います。以下の方法で試しましたが、

$ ATTACH_CMD=$(echo `cat $OUTPUT_FILE`)
$ echo $ATTACH_CMD
uuencode out.txt out.txt ; uuencode asgda.txt asgda.txt

$ (printf "%s\n" "BODY"; $ATTACH_CMD ) | mailx -m -s "TEST" emailid@domain.com

そして、私はエラーを下回っています。

sh: uuencode out.txt out.txt ; uuencode asgda.txt asgda.txt:  not found.

誰でもこれで私を助けてもらえますか? 前もって感謝します。

4

2 に答える 2

0

以下のコードを使用してみましたか?なぜ機能するのかはわかりませんが、次のコードを回避策として使用できる可能性があります

(printf "%s\n" "BODY"; `echo $ATTACH_CMD` ) | mailx -m -s "TEST" emailid@domain.com`?

$ATTACH_CMD私はコマンドを使用しましechoた。

于 2014-11-05T11:19:16.993 に答える
0

私はついに道を見つけました。eval がトリックを作る

eval $STR 

$ ATTACH_CMD=$(echo `cat $OUTPUT_FILE`)
$ echo $ATTACH_CMD
uuencode out.txt out.txt ; uuencode asgda.txt asgda.txt

$ (printf "%s\n" "BODY"; eval $ATTACH_CMD ) | mailx -m -s "TEST" emailid@domain.com
于 2014-11-06T08:45:43.367 に答える