现在,我在我的 bash 脚本中将多个命令定义为变量,如下所示:
LSIBATTSTATE=`/var/lib/einarc/tools/lsi_megacli/cli -AdpBbuCmd -GetBbuStatus -aALL | grep 'Operational'`
LSIBATT=`/var/lib/einarc/tools/lsi_megacli/cli -AdpBbuCmd -GetBbuStatus -aALL | grep 'isSOHGood: Yes'`
LSIWB=`/var/lib/einarc/tools/lsi_megacli/cli -LDinfo -Lall -Aall | grep 'WriteBack'`
ADAPZMM=`einarc ad info | grep 'ZMM Optimal'`
这是其中的 4 个,但有可能还会有更多。(这是针对 RAID 控制器的)。
我想做的是弄清楚如何检查所有这些变量的输出以获取返回结果。基本上,有点像这样,而不必为每个执行 if/then 语句:
ps cax | grep httpd > /dev/null
if [ $? -eq 0 ]; then
<do some stuff>
fi
如果找到所需的输出,则脚本继续前进并忽略它。但是,如果没有找到所需的输出(即返回结果为空),那么我希望它执行一个操作。我认为在 bash 中真正做到这一点的唯一方法是使用 for 循环,但我不确定这是否是最好或最有效的方法。此外,在这种情况下,数组是否有用?对我来说似乎不是这样,但是在 bash 中我仍然不擅长做很多事情。
任何帮助,将不胜感激。