如何循环遍历多行 bash 输出

如何循环遍历多行 bash 输出

我正在尝试设置一个脚本,该脚本将使用 MegaCli 命令检查 RAID 状态。我有 2 个 RAID 卷,所以我的脚本会输出两个卷的状态。我想弄清楚的是如何循环遍历输出以检查每个状态。

我执行:

/usr/sbin/MegaCli64 -CfgDsply -aALL -nolog |grep '^State' |awk '{print $3}'

我的输出是:

Optimal
Optimal

我当前的脚本是:

#!/bin/bash
STATUS=`/usr/sbin/MegaCli64 -CfgDsply -aALL -nolog |grep '^State' |awk '{print $3}'`

if [ "$STATUS" != "Optimal" ]; then
  echo -e "Subject: RAID WARNING @ `hostname`\n\n$STATUS"|/usr/sbin/sendmail [email protected]
fi

这无法正常工作。我对 Bash 脚本完全陌生,我通过谷歌搜索找到并尝试的结果也不起作用。

相关内容