将Bash脚本输出保存到条件为

时间:2016-02-03 10:15:44

标签: bash

我正在使用this脚本检查我拥有的ips列表,看它们是否在垃圾邮件阻止列表中。

auto.sh:

while read ip ; do
    ./blacklist.sh $ip
done < block.txt

blacklist.sh是上面链接的脚本。 block.txt一次一行地列出我的每个ips(我有几个/ 22)。

被阻止的ip扫描的典型输出如下所示:

Warning: PTR lookup failed
b.barracudacentral.org : 127.0.0.2
bb.barracudacentral.org : 127.0.0.2
black.junkemailfilter.com : 127.0.0.2
cbl.abuseat.org : 127.0.0.2
cidr.bl.mcafee.com : 127.0.0.4
dnsbl.justspam.org : 127.0.0.2
hostkarma.junkemailfilter.com : 127.0.0.2

----------------------------------------------------------
Results for <my ip>

Tested:        117
Passed:        110
Invalid:       0
Blacklisted:   7
----------------------------------------------------------

我想要做的是当上面的文字没有说出&#34;黑名单:0&#34;。

时,脚本会将输出吐出到文件中。

我不知道该如何处理,这会有效吗?

sudo ./auto.sh"黑名单的条件:是&gt; 0&#34; &GT;&GT; 12.txt

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

将输出放在临时文件中 然后查看其内容:

./auto.sh > 12_temp.txt
grep -q 'Blacklisted:[ \t]*0$' 12_temp.txt || cat 12_temp.txt >> 12.txt
rm -f 12_temp.txt