2017-06-03 4 views
1

Ich habe einen Code geschrieben, wo es die erfolgreiche Ausführung des letzten Laufbefehls überprüft und die Ausgabe mit dem Betreff senden wird.mailx Problem beim Senden der Ausgabe in Unix-Shell-Skript

#!/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 

Aber auf das Skript ausgeführt wird, erhalte ich Fehler:

The flags you gave are used only when sending mail. 

Antwort

1

versuchen, ein Ziel das Hinzufügen/To: E-Mail-Adresse, zB:

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

Sie auch werde möchte Ihre Variablen überprüfen, da Sie einige Probleme haben:

1 - SCHEDULER ID = "abc123" => keine gültige Variable; dann sieht es so aus, als würden Sie später über $ SCHEDULE_ID (gültiger Variablenname, aber andere Schreibweise) darauf verweisen.

2 - RUNNUM_INFO => gültiger Variablenname, aber später versuchen Sie, über $ BILL_RUNNUM_INFO (gültige Variable Name, aber andere Schreibweise)

+1

Danke :-) hatte keine Ziel-E-Mail-Adresse hinzugefügt, habe jetzt Variablennamen korrigiert. – User123

+0

Kann ich am Zielort mehrere E-Mail-IDs angeben? Wie unten: mailx -r "[email protected]" -s "Aktivität abgeschlossen - $ DATE" [email protected] [email protected] re[email protected] wird es funktionieren? – User123

+0

Ja, Sie können mehrere Empfänger/Ziele festlegen; Hast du es versucht? ("Im Zweifel, probier es aus!"); Ich glaube, dass mailx die Adressen akzeptiert, die durch ein Leerzeichen oder ein Komma getrennt sind (im Moment nicht in einer Unix-Befehlszeile) – markp

Verwandte Themen