我想寫一個基本上會查詢給定條件的shell腳本。這是抓住。我想讓它重複查詢3分鐘。 (可能運行查詢,並休眠2秒)編寫一個shell腳本
1分鐘後,如果查詢返回null,任何時候for循環都會中斷。 (主要目的是檢測查詢始終返回結果爲3分鐘的時間)
如何結合在下面的代碼break語句檢查,1分鐘後? (不SPOOL覆蓋文件的內容,或者它追加?)
for ((i=90; i > 1 ; i--))
do
sqlplus -s username/[email protected] <<EOF
SET PAGESIZE 50000
SET TERM OFF
SET HEAD OFF
SET LINESIZE 200
#SET TRIMSPOOL ON
SET FEEDBACK OFF
SPOOL /appl/odd/local/bin/notification_pending.txt
select awb,rcvr_phone,rcvr_email,latest_event,latest_event_dtm,status,contact,notify_method from shipment t,notification t2 where t.id=t2.shp_id
and t2.status like 'F%'
and t2.contact not in ('Recipient not in whitelist','Invalid Email Id','Mail Service Down','Invalid Mobile Number');
SPOOL OFF
exit
/
EOF
sleep 2
done
爲什麼不在儲存的程序包或程序中調用這一切? – kevinsky
看到http://stackoverflow.com/questions/27971833/in-bash-heredoc-inside-function-returns-syntax-error的一些想法。注意'dbname = $(...)'結構。祝你好運。 – shellter
@kevinsky,我不使用存儲過程,因爲我相信在Shell腳本,它將不能夠閥芯結果到一個文件,以電子郵件通知。 – JCDrew90