您能帮我将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
答案 0 :(得分:0)
您可以使用tee,tee
将输出写入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
我自己没试过,但应该没问题。 希望它有所帮助!