我有一個腳本直到遇到第二個($ sqlSenderID)和第三個($ sqlEmail)時纔會遇到問題。Bash嵌套for循環始終在第一行開始
它做了什麼它通過$ sqlEmail運行5次(因爲它發現5封電子郵件),然後它改變id並再次做同樣的事情,從而返回錯誤的信息。
我想讓$ sqlEmail停止並在第一次運行後轉到$ senderID,然後它必須再次通過新的ID和電子郵件運行。
如果我添加在$ sqlEmail循環休息的可以追溯到但它在報告相同的電子郵件地址,並在
任何幫助將不勝感激
我的代碼:
for i in $sqlSenderID
do
for e in $sqlEmail
do
sqlBannerExp=$(sudo -upostgres psql -d db -t -c "select \"endTime\" from \"lnkSenderTag\" where \"senderId\" = '$i' and \"endTime\" != 'infinity' and \"endTime\" <= 'now'::date;")
if [[ -n $sqlBannerExp ]]; then
echo "$e Banner Expired" >> Banner.txt
fi
sqlBannerSoon=$(sudo -upostgres psql -d db -t -c "select \"endTime\" from \"lnkSenderTag\" where \"senderId\" = '$i' and \"endTime\" != 'infinity' and \"endTime\" = (current_date + interval '1 day');")
if [[ -n $sqlBannerSoon ]]; then
echo "$e Banner Expiring Soon" >> Banner.txt
fi
sqlBannerNo=$(sudo -upostgres psql -d db -t -c "select branded from maillog where sender = '$i' and branded is null;")
if [[ -n $sqlBannerNo ]]; then
echo "$e No Banner Assigned" >> Banner.txt
fi
sqlSignatureNo=$(sudo -upostgres psql -d db -t -c "select tagtype from branding where senderid = '$i' and tagtype != 'Template' and tagtype != 'Disclaimer';")
if [[ -z $sqlSignatureNo ]]; then
echo "$e No Signature Assigned" >> Banner.txt
fi
echo "$e" >> test.txt
break
done
echo "" >> Banner.txt
done
發件人ID將類似於451 452 453 845 22472
請您可以修復您的格式?我猜想整件事不應該在反引號內,而且'>'也不應該在那裏。 –
我已經刪除反引號,對不起,這是偶然添加它的網站 – Dreamsword981
好吧,現在看起來好多了,但仍有很多代碼需要挖掘。你可以嘗試給我們提供[mcve]嗎? –