![为什么我的脚本中出现“未找到命令”?](https://linux22.com/image/156106/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E8%84%9A%E6%9C%AC%E4%B8%AD%E5%87%BA%E7%8E%B0%E2%80%9C%E6%9C%AA%E6%89%BE%E5%88%B0%E5%91%BD%E4%BB%A4%E2%80%9D%EF%BC%9F.png)
我正在编写 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]
几乎肯定不会执行您想要的操作。看:我可以使用比较运算符吗?