2017-09-26 60 views
0

我正在使用以下命令來捕獲服務器上使用的磁盤空間並將其存儲在var空間中。BASH - 在消息輸出中包含換行符

space=`cd /users/; du -hs * | sort -h;` 

在進入echo "$space"命令行顯示了結果與線正確的輸出饋送。

現在我想以電子郵件這對自己,郵件發送正常,但像它在bash提示符杜輸出都出現在一行中沒有新的線路。

這是我的郵件正文以及如何我試圖使用space

它可以工作,但是輸出結果不像從命令行運行時那樣顯示。

mailbody="$server_name - Server disk usage is at ${current_usage}. ${space}" 

例如,我得到

Test Server - Server disk usage is at 40%. 1.1G jon 1.1G paul 1.9G ringo 

,我想獲得

Test Server - Server disk usage is at 40%. 
1.1G jon 
1.1G paul 
1.9G ringo 

任何想法,我該怎麼辦呢?

感謝

+1

你引用'「$ mailbody」'嗎? –

+0

我使用:'echo $ {mailbody} | mail -s「$ server_name」「$ {mail}」 - -f「$ {from}」'我應該引用mailbody嗎? – Rocket

+3

@glennjackman感謝改變我的回聲'echo -e「$ {mailbody}」'似乎已經修復了它 – Rocket

回答

-1

解決的辦法是:

space=$`cd /users/; du -hs * | sort -h;` 

的$使得擴大了ANSI-C標準的代碼。即使表單提要和警報工作。

+0

問題是缺少引用。你可能是指'$'...''而不是'$ \'... \'',不是? –