У меня есть следующий сценарий оболочки, который выполняет SQL-запрос и команду, которая отправляет результат в виде электронной почты. Проблема в том, что я могу отправить только вывод SQL. Не выход цикла for. Я попытался дать «EOF» после цикла for, но затем он дает синтаксическую ошибку. Пожалуйста, дайте мне знать, как отправить оба вывода в электронном письме.Вывод SQL-запроса и команды в файл в сценарии оболочки
Благодарности & С уважением, Akhil
#!/bin/bash
source $HOME/.bash_profile
cd /home/cron
wfVAR="red blue green"
echo " " > /home/cron/output.lst
sqlplus -s user/[email protected] <<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'`" [email protected]
rm output_temp.lst
Как в стороне, в каталоге редко возникает необходимость в 'cd', и выполнение сценария зависит от' .bash_profile 'вызывающего пользователя, обычно не является хорошей идеей. И как всегда, 'cat file | mail' лучше выражен 'mail <файл'. – tripleee
Вы не создаете 'output_temp.lst', и вы не записываете вывод из' sqlplus' или 'pmcmd'. – tripleee