私のスクリプトに「コマンドが見つかりません」と表示されるのはなぜですか?

私のスクリプトに「コマンドが見つかりません」と表示されるのはなぜですか?

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]あなたが望むものをほとんど確実に実行できないことに注意してください。望むより:比較演算子を使用できますか?

関連情報