Die Ausgabe der SQL-Abfrage und der Befehl um eine Datei in shell-Skript

Habe ich Folgendes shell-script, welches ausgeführt wird eine SQL-Abfrage und einen Befehl sendet die Ausgabe als E-Mail. Das Problem ist ich bin in der Lage, nur senden die SQL-Ausgabe. Nicht die Ausgabe der for-Schleife. Ich habe versucht zu geben, das "EOF" nach der for-Schleife, aber dann gibt es einen syntax-Fehler. Bitte lassen Sie mich wissen, wie Sie sowohl die Ausgabe in eine E-Mail.

Dank & Grüße,
Akhil

#!/bin/bash
source $HOME/.bash_profile

cd /home/cron

wfVAR="red blue green"


echo " " > /home/cron/output.lst
sqlplus -s user/test@DB <<EOF
set linesize 55 pages 500
spool output_temp.lst;
set head off;
select sysdate from dual;
set head on;
spool off;
EOF

for name in ${wfVAR}; do
  pmcmd getworkflowdetails -sv REPOSITORY ${name} | grep -e "Workflow:" -e "Workflow run status:" -e "End time:"
 done

sed -e 's/*$//' output_temp.lst > output.lst
cat /home/cron/output.lst | mail -s "Output - `date '+%d-%m-%y'`" akhil@gmail.com
rm output_temp.lst
  • Als beiseite, es ist selten, müssen cd in das Verzeichnis und das script hängt, die dem aufrufenden Benutzer die .bash_profile ist in der Regel nicht eine gute Idee überhaupt. Und wie immer cat file | mail ist besser ausgedrückt mail <file.
  • Sie schaffen nicht output_temp.lst und Sie sind nicht die Erfassung der Ausgabe von sqlplus oder pmcmd.
InformationsquelleAutor Nair | 2015-06-10
Schreibe einen Kommentar