2017-06-03 75 views
1

我已經寫了一個代碼,它將檢查上次運行命令的執行是否成功,並將輸出與主題一起郵寄。在unix shell腳本中發送輸出時發生mailx問題

#!/bin/ksh 

SCHEDULER ID="abc123" 
RUNNUM_INFO="1212" 
DATE=`date '+%Y%m%d'` 
FILE="OX_{DATE}.txt" 

/usr/bin/ftp -n 93.179.136.9 << !EOF! 
user abc passwd 
cd "/0009/Codici Migrazione" 
bin 
get $FILE 
bye 
!EOF! 


if [ $? -eq 0 ]; 
then 
echo "Activity completed. \n 
SCHEDULER ID : $SCHEDULE_ID \n BILL_RUN_NUM: $BILL_RUNNUM_INFO \n DATE: $DATE" | mailx -r "[email protected]" -s "Activity Completed - $DATE" 
exit 0 
fi 

但是,在執行該腳本,我得到錯誤:

The flags you gave are used only when sending mail. 

回答

1

嘗試添加目的地/收件人:電子郵件地址,例如:

mailx -r "[email protected]" -s "Activity Completed - $DATE" [email protected] 

你也想要檢查你的變量,因爲你有幾個問題:

1 - SCHEDULER ID =「abc123」=>不是一個有效的變量;那麼它看起來像你想通過$ SCHEDULE_ID(有效的變量名稱,但不同的拼寫)來引用它

2 - RUNNUM_INFO =>有效的變量名稱,但稍後嘗試通過$ BILL_RUNNUM_INFO(有效變量名稱,但不同的拼寫)

+1

感謝:-)沒有添加目標電子郵件地址,現在已經更正了變量名稱。 – User123

+0

我可以在目的地提供多個電子郵件ID嗎?如下所示:mailx -r「[email protected]」-s「活動已完成 - $ DATE」[email protected] [email protected] [email protected]可以工作嗎? – User123

+0

是的,你可以規定多個收件人/目的地;你試過了嗎? (「如有疑問,請試用!」);我相信mailx會接受由空格或逗號分隔的地址(目前不在unix命令行中) – markp