为什么我的脚本中出现“未找到命令”?

为什么我的脚本中出现“未找到命令”?

我正在编写 Nagios 插件,运行它时出现“命令未找到”错误。出了什么问题?为什么 127.0.0.1(或 localhost)无法识别?当我仅运行 snmp 请求时 - 我有一个简单的数字作为输出 - 所以一切都运行正常。

这是脚本

#!/bin/bash

answer=snmpget 127.0.0.1 -v 2c -c public .1.3.6.1.4.1.2021.11.9.0 | grep -Eo 
'[0-9]+$'

case $answer in
    [1-2]*)
        echo "OK"
        exit 0
        ;;
    [3-50]*)
        echo "WARNING"
        exit 1
        ;;
    [51-100]*)
        echo "CRITICAL"
        exit 2
        ;;
    *)
        echo "UNKNOWN"
        exit 3
        ;;
esac

答案1

您的变量分配不正确。您正在寻找命令替换:

answer=$(snmpget 127.0.0.1 -v 2c -c public .1.3.6.1.4.1.2021.11.9.0 | grep -Eo '[0-9]+$')

正如您所编写的,您正在将其设置answer=snmpget为命令的环境变量:127.0.0.1带有选项:-v 2c -c public .1.3.6.1.4.1.2021.11.9.0

另请注意[3-50][51-100]几乎肯定不会执行您想要的操作。看:我可以使用比较运算符吗?

相关内容