簡體   English   中英

Bash 腳本與多行 heredoc 沒有 output 任何東西

[英]Bash script with multiline heredoc doesn't output anything

我正在編寫一個腳本以在郵件中發送 SQL output,但它沒有成功執行並且沒有生成我想要的 output。

該查詢生成具有多行的兩列。 如何以如下表格格式生成 output?

列列表名的表|最后收到

下面是我的代碼:

#!/bin/bash

ORACLE_HOME= **PATH
export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin
export PATH
TNS_ADMIN= ** PATH
export TNS_ADMIN


today=$(date +%d-%m-%Y)

output=$(sqlplus -S user/pass@service <<EOF
set heading off;
SELECT distinct list_name ,max(captured_dttm) as Last_received FROM db.table1
group by list_name having  max(captured_dttm) <= trunc(sysdate - interval '2' hour);
EOF)

if [ -z "$output" ];
then
echo"its fine"
exit
else

echo "
Dear All,

Kindly check we've not received the list for last 2 hour : $output
Regards,
Team" | mailx -S smtp=XX.XX.X.XX:XX -s "URGENT! Please check list FOR $today"   user@abc.com
fi

使用 here 文檔時,結束字符串后面不能跟任何內容,只能是換行符。 將右括號移到下一行:

output=$(sqlplus -S user/pass@service <<EOF
...
EOF
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM