2016-11-13 5 views
0

私が書いているスクリプトにいくつかの問題があります。 基本的には、アクティブなIPアドレスのリストを取得し、配列に追加したいと考えています。 しかし残念なことに、どこからでも見た後、私は解決策を見つけていません。配列へのMutli-line AWK出力

これまでのところ、私はこれがあります。

#!/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

非常に小さな問題:

${Iparray[@]}は、IPアドレスのリストであるので、あなたはできる:

for ip in ${Iparray[@]}; do 
    echo $ip 
done 

OR

あなたが本当にインデックスを使用する場合:

for ((i=0; i<${#Iparray[@]}; i++)) ; do 
     echo ${Iparray[$i]} 
done 
+0

ああ、ありがとう、ありがとう。 – Hampkade