我使用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