linux 命令在脚本中有不同的行为

linux 命令在脚本中有不同的行为

我正在尝试创建一个脚本,该脚本可以在我的磁盘阵列发生故障时执行某些操作。当我运行该命令时,它必须返回数字 4(grep对“OK”一词进行了 4 次计数,每个磁盘一次)。

然后我想检查是否有 4 个或更少的 OK 并执行某些操作。

这是我的脚本:

#!/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 controller slot=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

相关内容