我正在编写一些与我正在编写的脚本有关的问题。 基本上我想检索一个活动IP地址列表并将它们添加到一个数组中。 不幸的是,在到处寻找之后,我还没有找到解决方案。
到目前为止,我有这个:
#!/bin/bash
ipnet="192.168.0.0/24"
tail /proc/uptime | grep -o '^\S*'
Iparray=($(nmap -n -sn $ipnet -oG - | awk '/Up$/{print $2}'))
echo $Iparray[3]
echo "Active IPs:"
for i in "${Iparray[@]}"
do
:
echo $Iparray[$i]
done
但是,不是预期的输出是IP列表,我得到了这个:
16977.41
192.168.0.1[3]
Active IPs:
192.168.0.1[192.168.0.1]
192.168.0.1[192.168.0.2]
192.168.0.1[192.168.0.3]
192.168.0.1[192.168.0.4]
...
192.168.0.1[192.168.0.254]
不太确定发生了什么...... 任何帮助,将不胜感激。
答案 0 :(得分:0)
非常小的问题:
${Iparray[@]}
是IP地址列表,因此您可以:
for ip in ${Iparray[@]}; do
echo $ip
done
OR
如果你真的想使用索引:
for (( i=0; i<${#Iparray[@]}; i++ )) ; do
echo ${Iparray[$i]}
done