这个脚本在AIX机箱上运行得很好,但是现在在RH linux机器上,数组似乎没有用。新RH盒上的版本是4.1.2
我声明我的数组
declare -a gridNames=()
我获得有关网格的信息
gridstats=`snmpwalk -v 2c -c splunk $host gridStatsTable -m $APPLIANCEMIB -OUQs -Ln`
除了从上面获取统计数据之外,我重复使用它来查找所有gridNames,然后使用gridNames数组来获取有关其地图的统计数据。
while read -r process; do
gridNames=(${gridNames[@]} `grep gridName | awk -F "\"" '{print $(NF-1)}'`)
done <<< "$gridstats"
awk部分经过测试并正确返回一个网格名列表(在这种情况下只有一个)但是当我回显数组gridNames时它是空的。
我也尝试过使用
gridNames+=(`grep gridName | awk -F "\"" '{print $(NF-1)}'`)
但这不起作用
答案 0 :(得分:2)
您需要使用+=
运算符将元素附加到具有流程替换的数组:
while read -r process; do
gridNames+=( $(grep 'gridName' | awk -F '"' '{print $(NF-1)}' <<< "$process") )
done < <(snmpwalk -v 2c -c splunk $host gridStatsTable -m $APPLIANCEMIB -OUQs -Ln)