Linux コマンドはスクリプトで異なる動作をします。

Linux コマンドはスクリプトで異なる動作をします。

ディスクアレイに障害が発生した場合に操作を実行するスクリプトを作成しようとしています。コマンドを実行すると、数字4を返す必要があります(grep「OK」という単語は各ディスクに対して1回4回カウントされます)。

それからOKが4つ以下であることを確認し、いくつかのことをしたいと思います。

これは私のスクリプトです。

#!/bin/bash
$okdevices = hpssacli controller slot=4 physicaldrive all show | grep -c "OK"
if [ $okdevices -lt 4 ]
then
    echo "disk missing"
fi

単項演算子が必要であるというエラーが返されます。

ベストアンサー1

変数に割り当てられたコマンド出力が無効です。 「4」を使用して、「hpssacliコントローラスロット= 4physicaldrive all show | grep -c OK」文字列を評価しています。

これは働きます:

#!/bin/bash
okdevices="$(hpssacli controller slot=4 physicaldrive all show | grep -c OK)"
if [ $okdevices -lt 4 ]; then
    echo "missing disk"
fi

おすすめ記事