我正在尝试使用变量,而不是在多个地方明确列出我的区域列表。
我意识到我可以下载所有文件,然后应用我正在寻找的文件。我觉得我应该能够做到这一点,我想这会让这有点学术练习。也许我的术语已经关闭,但我所做的大部分搜索都是基于整数的结果。下面的代码按原样工作......但我想{ru,cn...}
用一个$zone_list
变量换掉。这就像文件扩展名或类型一样容易{jpg,php,htm,html}
......我在这里偏离基地,还是我应该考虑另一种方式?
#!/bin/bash
ipset=/sbin/ipset
## zone_list="ru,cn,in,hk"
## zone_list="{ru,cn,in,hk}"
## wget -N http://www.ipdeny.com/ipblocks/data/countries/{$zone_list}.zone -P ~/testing/iptables/blacklists/zones/
wget -N http://www.ipdeny.com/ipblocks/data/countries/{ru,cn,in,hk}.zone -P ~/testing/iptables/blacklists/zones/
## $ipset -F
## $ipset -N -! blacklist hash:net maxelem 262144
for ip in $(cat ~/testing/iptables/blacklists/zones/{ru,cn,in,hk}.zone); do
## $ipset -A blacklist $ip
echo $ip
done
编辑:使用下面 Dzienny 的答案更新脚本
#!/bin/bash
ipset=/sbin/ipset
zone_list="{ru,cn,in,hk}"
eval "urls=(http://www.ipdeny.com/ipblocks/data/countries/${zone_list}.zone)"
wget -N "${urls[@]}" -P /srv/iptables-data/blacklists/zones/
## BLACKZONE RULE (select country to block and ip/range)
## $ipset -F
## $ipset -N -! blacklist hash:net maxelem 262144
eval "zonefiles=(/srv/iptables-data/blacklists/zones/${zone_list}.zone)"
for ip in $(cat "${zonefiles[@]}"); do
## $ipset -A blacklist $ip
echo $ip
done