这个脚本在 AIX 机器上运行得很好,但现在在 RH linux 机器上,阵列似乎无法工作。新RH盒子上的版本是4.1.2
我声明我的数组
declare -a gridNames=()
我获取有关网格的信息
gridstats=`snmpwalk -v 2c -c splunk $host gridStatsTable -m $APPLIANCEMIB -OUQs -Ln`
除了从上面获取统计信息之外,我还重用它来查找所有 gridNames,然后使用 gridNames 数组来获取有关其 map 的统计信息。
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)}'`)
但这也不起作用
最佳答案
您需要使用+=
运算符通过进程替换将元素 append 到数组:
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)
关于arrays - 为什么我的 bash 数组追加不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30297583/