我正在使用Curl發送簡單的電子郵件警報:
curl smtp://mail.example.com --mail-from [email protected] --mail-rcpt \
[email protected] --upload-file email.txt
email.txt 內容:
From: John <[email protected]>
To: Joe <[email protected]>
Subject: Example email
Date: Wed, 26 Oct 2022 08:45:16
Welcome to this example email.
是否可以在內部包含變數email.txt(例如,使日期動態date或包含 bash user who)?
uj5u.com熱心網友回復:
有一個名為 的 GNU gettext 實用程式envsubst,它將標準輸入中的變數替換為它們的值。例如:
$ export DATE=$(date '%F %T')
$ echo '$DATE' | envsubst
2022-10-25 13:17:51
請注意echo '$DATE'prints $DATE,從字面上看,由于單引號,shell 不會擴展變數。
要將其用于您的示例,您可以在環境中設定所需的值:
export FROM='[email protected]'
export TO='[email protected]'
export DATE=$(date '%F %T')
然后更新電子郵件以使用變數:
From: John <$FROM>
To: Joe <$TO>
Subject: Example email
Date: $DATE
Welcome to this example email.
然后envsubst在您的命令中使用和行程替換:
curl smtp://mail.example.com \
--mail-from "$FROM" \
--mail-rcpt "$TO" \
--upload-file <(envsubst < email.txt)
的輸出envsubst < email.txt是
From: John <[email protected]>
To: Joe <[email protected]>
Subject: Example email
Date: 2022-10-25 13:23:44
Welcome to this example email.
除了行程替換,您還可以使用管道和特殊-檔案從標準輸入中讀取:
envsubst < email.txt \
| curl smtp://mail.example.com \
--mail-from "$FROM" \
--mail-rcpt "$TO" \
--upload-file -
uj5u.com熱心網友回復:
也許它會幫助你(見 man envsubst):
$ cat test.txt
current date is ${CURRENT_DATE}
$ export CURRENT_DATE=$(date); cat test.txt | envsubst | curl bla-bla
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/520094.html
標籤:重击卷曲
下一篇:比較多個tsv檔案的匹配列
