2011-04-11 58 views
1

基本上我也要把姓,姓氏,用戶名,並從文件級別,我要發送一封電子郵件給該用戶(「用戶名」),看起來是這樣的:如何從Linux中的文件向用戶發送包含特定模板的郵件(模板包含來自文件的信息)?

「親愛的「姓''lastname'!
您在'班級名稱'考試中的成績是'成績'。「

'class name'通過shell的參數列表給出,其餘的信息在該文件中。

於是我就一步一步來。首先用awk打印出所需的佈局

awk '{print "Dear",$1,$2 "!","\nYour grade on the '$class' exam was ",$4;}' in.txt 

工作正常。然後,我測試了,如果我的郵件工作和它的作用:

$ mail -s 'Subj' bando < /tmp/msg.txt 

所以我需要寫我輸出到文本文件,所以我可以將它發送給特定的用戶。

這是我的問題踢。我試過幾個版本,試圖打印我的字符串的文件,但也有一些是錯的,我不知道是什麼。與回聲和貓一樣。試圖把它切成小塊但仍然沒有。

回答

2

試試這個awk命令從in.txt閱讀和發送電子郵件:

class='9th' 
awk '{msg="Dear " $1 " " $2 "!,\nYour grade on the '$class' exam was " $4; system("echo \"" msg "\" | mail -s 'Subj' " $3);}' in.txt 

這裏,你in.txt文件看起來是這樣的:

cat in.txt 
Lname Fname [email protected] 7.6 

說明:

awk命令將in.txt文件解析爲$ 1,$ 2,$ 3,$ 4的佔位符。

然後,它格式化在一個變量msg郵件消息。

最後,調用系統函數來執行echo "<msg>" | mail -s 'Subj' $3呼應味精變量和管道它mail命令來發送。在那裏需要反斜槓以用雙引號括住msg變量。

相關問題