Bash 命令如果命令成功

Bash command if command succeed

如何根据命令的输出更改命令的输出?

我进行了 snmp 验证,但有可能的答案:

  1. 命令已执行但没有应答。
  2. 命令执行正常,但结果不是我所期望的(在这种情况下,这将是输出: SNMPv2-MIB::sysUpTime.513 = 当前不存在此类实例 这个 OID)
  3. 他的命令执行正常,结果是预期的结果(与当前没有此类实例的答案不同 OID)

我希望人们 运行 这个脚本,以防收到选项 1 或 2 阅读: “SNMP 不可用”

对于第三个选项: “ SNMP 可用”

在我的脚本中,在选项 2 中我的输出变为 OK 而不是变为 Not OK

#!/bin/bash
hostname=
read -p "Introduce IP Address: " hostname
community="snmpcommunity"
echo "snmp validation:"
sysUpTime=`snmpget -v2c -c $comunidad $hostname 1.3.6.1.2.1.1.3.513`
if [ $? -eq 0 ]; then
    echo "snmp1 ok"
else
    echo "snmp1 not ok"
fi

如果 snmpget 命令的结果进入 sysUpTime 变量,则在第一个 if 条件中添加以下 if 条件应该有效。

if [[ $sysUpTime == *"No Such Instance currently exists at this OID"* ]]
then
  echo "snmp1 ok"
else
  echo "snmp1 not ok - Instance already exist."
fi
!/bin/bash

hostname=
read -p "Introduce IP Address: " hostname
community="snmpcommunity"
echo "snmp validation:"
sysUpTime=`snmpget -v2c -c $comunidad $hostname 1.3.6.1.2.1.1.3.513`
if [ $? -ne 0 -o "$sysUpTime" = "SNMPv2-MIB::sysUpTime.513 = No Such Instance currently exists at this OID)" ]; then
            echo "SNMP not available"
else
      echo "SNMP available"      
fi

这部分代码

   if [ $? -ne 0 -o "$sysUpTime" = "SNMPv2-MIB::sysUpTime.513 = No Such Instance currently exists at this OID)" ]

如果出现错误或 sysUptime 变量等于您的字符串,它将打印 SNMP not available