我有一个脚本直到遇到第二个($ 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]吗? –