我使用mutt从bash脚本创建和发送邮件。重定向bash:来自变量的内容,而不是来自文件
这样的:
$傻子-s SUBJECT MAIL_TO_ADDRESS < BODY_CONTENT_FILE
所以我总是打电话狗之前写一个文件,有没有直接从脚本传递信息的解决方案或shell变量?
我使用mutt从bash脚本创建和发送邮件。重定向bash:来自变量的内容,而不是来自文件
这样的:
$傻子-s SUBJECT MAIL_TO_ADDRESS < BODY_CONTENT_FILE
所以我总是打电话狗之前写一个文件,有没有直接从脚本传递信息的解决方案或shell变量?
当然。
对于文字内容,您可以使用此文档:
mutt -s "$SUBJECT" "$ADDRESS" <<EOF
body of message goes here
and all of it is included
until you have a line with the terminator
which is whatever you put after the `<<`
in this case,
EOF
注意参数将在这里的文档内进行扩展,就好像它是一个双引号字符串,除非你引用的终结(例如<<"EOF"
),在这种情况下,它将被视为一个单引号字符串。
如果它是一个短消息,或者已经在一个变量,它可能更容易使用下面的字符串代替:
mutt -s "$SUBJECT" "$ADDRESS" <<<"$BODY"
使用在这里记录
$ mutt -s SUBJECT ADDRESS <<EOF
long
multiline
message
EOF
或者,如果消息是短,bash
允许此字符串:
$ mutt -s SUBJECT ADDRESS <<< "short message"
要么可以包含一个参数扩展,如果你已经有了一个文本变量。
当然可以。
行尾的表达式< BODY_CONTENT_FILE
与行开头的cat BODY_CONTENT_FILE |
相同。
echo $VARIABLE | mutt -s SUBJECT MAIL_TO_ADDRESS
你可以用任何你想要的输出是标准输出替换echo $VARIABLE
:
所以,你可以,如果你的内容是可变的使用下面的代码片段。
所以从文件重定向是一样的管道一般? – user3336433 2014-10-17 14:23:34
@ user3336433,不是*完全相同的东西 - 从文件重定向给你一个直接的FD连接到文件,这意味着它更有效率,你可以在其中寻找(),而来自'cat'的管道给你连接到负责读取的'cat'进程的管道端;作为一个管道,它不允许在流中跳跃 - 你可以从中读取或关闭它,但不能,例如倒带。尽管如此,它们都控制着stdin连接的内容,并且从'cat file'管道和用
太好了,谢谢!正是我所需要的 – user3336433 2014-10-17 14:14:48