Arrays 将IP地址放入数组并解析输出

Arrays 将IP地址放入数组并解析输出,arrays,linux,bash,Arrays,Linux,Bash,我有一个脚本,其中greps了一堆IP的。我想将结果解析为一个数组: For i in IP echo IP done 但就目前情况而言,我一次又一次地获得相同的IP 我的代码: #!/bin/bash IP=($(showmount -a | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b")) ARRAY="$(showmount -a | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b")" echo "

我有一个脚本,其中greps了一堆IP的。我想将结果解析为一个数组:

For i in IP
    echo IP
done
但就目前情况而言,我一次又一次地获得相同的IP

我的代码:

#!/bin/bash

IP=($(showmount -a | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b"))

ARRAY="$(showmount -a | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b")"
echo "$ARRAY"
echo
for i in "${IP[@]}"
do
echo $IP
done
当我运行它时,我得到:

root@venom:~# nano test.sh && ./test.sh
10.1.10.10
10.1.10.11
10.1.10.129
10.1.10.130
10.1.10.13
10.1.11.73

10.1.10.10
10.1.10.10
10.1.10.10
10.1.10.10
10.1.10.10
10.1.10.10

尝试输出循环变量,而不是数组的第一个元素

for i in "${IP[@]}" ; do
    echo $i  # Not $IP.  $IP is the same as ${IP[0]}
done

谢谢!现在看起来很明显,但我当时正使劲想弄明白。别担心,这不会是最后一次了。
:)