Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash嵌套for循环不工作_Bash - Fatal编程技术网

bash嵌套for循环不工作

bash嵌套for循环不工作,bash,Bash,我已经写了一个bash脚本来禁止我的路由器使用国家IP块 为什么以下方法有效: for ip in $(wget -qO- http://ipdeny.com/ipblocks/data/countries/cn.zone) do iptables -I wanin -s "$ip" -j DROP done 但是下面我在哪个国家嵌套多个不 for country in CN AD do for ip in $(wget -qO- http://ipdeny.com/ipb

我已经写了一个bash脚本来禁止我的路由器使用国家IP块

为什么以下方法有效:

for ip in $(wget -qO- http://ipdeny.com/ipblocks/data/countries/cn.zone)
do 
    iptables -I wanin -s "$ip" -j DROP
done
但是下面我在哪个国家嵌套多个不

for country in CN AD
do 
    for ip in $(wget -qO- http://ipdeny.com/ipblocks/data/countries/$country.zone) 
    do 
        iptables -I wanin -s "$ip" -j DROP
    done
done

注意它的大小写感。你有

for country in CN AD;
请注意此处使用的是大写字母。如果你使用

for country in cn ad;

那么它应该会起作用。你可以尝试一下这个链接,看看它是否具有区分大小写的功能。你有

for country in CN AD;
请注意此处使用的是大写字母。如果你使用

for country in cn ad;

那么它应该会起作用。您可以自己尝试该链接,并且

因为
country
应该是小写的,您可以添加
declare-l country
,如下所示:

declare -l country
for country in CN AD; do 
  for ip in $(wget -qO- http://ipdeny.com/ipblocks/data/countries/$country.zone); do
    iptables -I wanin -s "$ip" -j DROP
  done
done
或使用:


由于
country
应为小写,您可以添加
declare-l country
如下:

declare -l country
for country in CN AD; do 
  for ip in $(wget -qO- http://ipdeny.com/ipblocks/data/countries/$country.zone); do
    iptables -I wanin -s "$ip" -j DROP
  done
done
或使用: