将snmpget输出分配给变量

时间:2017-08-17 04:11:16

标签: bash shell

您能帮我将snmpget输出分配给变量,然后将其写入RESULTS文件。

#!/bin/sh

workingdir="/home/dperera/ping-tests" # LOG=$workingdir/RESULT.csv

infile=$workingdir/RTR_LIST # while read device

do

#$device sysName.0 > /dev/null  
#if [ "$?" = "0" ] ; then    
    rtr = snmpget -v2c -c xxxxx $device mib-2.47.1.1.1.1.11.1  >> $LOG
    echo "$device, $rtr" >> $LOG                    
#   fi
done < $infile

2 个答案:

答案 0 :(得分:0)

您可以使用teetee将输出写入stdout和log文件。修改您的命令,如下所示,将$(snmpget ...)的输出分配给rtr,并写入$LOG

rtr=$(snmpget -v2c -c xxxxx $device mib-2.47.1.1.1.1.11.1 | tee -a $LOG)

请注意-a tee允许输出附加到给定的$LOG,而不是覆盖它。

答案 1 :(得分:0)

我敢打赌以下命令行会返回错误代码:

rtr = snmpget -v2c -c xxxxx $device mib-2.47.1.1.1.1.11.1  >> $LOG

首先,请记住,在bash中,您不能在=符号前后留空格。另外,请记住您需要命令的返回值,因此需要使用$。因此,这应该有效:

rtr=$(snmpget -v2c -c xxxxx $device mib-2.47.1.1.1.1.11.1)

在此之后,将变量写入日志文件可以通过以下方式完成:

echo rtr >> your.file

我自己没试过,但应该没问题。 希望它有所帮助!