我有这个脚本:
nmapout=`sudo nmap -sP 10.0.0.0/24`
names=`echo "$nmapout" | grep "MAC" | grep -o '(.\+)'`
echo "$names"
现在,$names
变量包含以换行符分隔的字符串:
>_
(Netgear)
(Hon Hai Precision Ind. Co.)
(Apple)
我尝试使用子字符串方法进行数组转换:
names=(${names//\\n/ })
echo "${names[@]}"
但问题在于,我无法通过索引访问它们(即${names[$i]
等),如果我运行这个循环。
for (( i=0; i<${#names[@]}; i++ ))
do
echo "$i: ${names[$i]"
# do some processing with ${names[$i]}
done
我得到了这个输出:
>_
0: (Netgear)
1: (Hon
2: Hai
但是我想要的是:
>_
0: (Netgear)
1: (Hon Hai Precision Ind. Co.)
2: (Apple)
我想不出一个好方法来做到这一点,请注意第二个字符串中有空格。