我正在做snmp设备来查看接口的状态。我试图用它来自的设备替换接口名称,所以我可以在接口名称旁边的列中设置设备名称。
预期输出
DeviceName1 Device1InterfaceName1
DeviceName1 Device1InterfaceName2
DeviceName1 Device1InterfaceName3
DeviceName1 Device1InterfaceName4
DeviceName1 Device1InterfaceName5
DeviceName1 Device1InterfaceName6
DeviceName2 Device2InterfaceName1
DeviceName2 Device2InterfaceName2
DeviceName2 Device2InterfaceName3
DeviceName2 Device2InterfaceName4
DeviceName3 Device3InterfaceName1
DeviceName3 Device3InterfaceName2
我可以运行此脚本来获取接口名称:
#!/bin/bash
while read device
do
var5=$(sm_snmp -c "communitystring" -d $device walk .1.3.6.1.2.1.2.2.1.2 | grep -v "SNMP Walk MIB starting at" | awk -F "= " '{print $2}');
printf "%-20s\n" "$var5"
done < devicelist.txt
上面脚本的输出为我提供了InterfaceNames:
Device1InterfaceName1
Device1InterfaceName2
Device1InterfaceName3
Device1InterfaceName4
Device1InterfaceName5
Device2InterfaceName1
Device2InterfaceName2
Device2InterfaceName3
Device3InterfaceName1
Device3InterfaceName2
我想在当时输出DeviceName和DeviceInterfaceName。我替换的问题是上面脚本的输出将在每一行(我想要)上返回一个DeviceInterfaceName,但我尝试过的任何替换只用一行代替DeviceName替换整个变量。此外,我需要为devicelist.txt中的每个设备执行此操作。
答案 0 :(得分:0)
printf "%-20s %-20s\n" "${device}" "${var5}"
不是你所期望的?