Linux

linux命令在腳本中有不同的行為

  • March 24, 2022

我正在嘗試創建一個腳本,如果我的磁碟陣列出現故障,它會做一些事情。當我執行命令時,它必須返回數字 4(grep計算 4 次 OK,每個磁碟一次)。

然後我想檢查是否有 4 個或更少的 OK 並做一些事情。

這是我的腳本:

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

這將返回一個錯誤,指出它需要一個一元運算符。

錯誤的命令輸出分配給變數,您正在評估字元串“hpssacli controller slot=4 physicaldrive all show | grep -c OK”和“4”

這應該有效:

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

引用自:https://unix.stackexchange.com/questions/286749