我正在尝试创建一个KornShell(ksh)脚本来检查进程的状态。 如果状态是“通过”,它将只是回显“通过”。 如果状态为“失败”,则会发送警报。
我可以想到两种方法:
将流程状态捕获到临时文件中,并在该文件中搜索术语“通过”或“失败”并相应地执行操作
e.g。
servicename > tmp.file
grep pass tmp.file
if exists, echo "pass"
Grep表示“通过”或“失败”并使用退出代码进行其他操作
e.g。
servicename | grep pass
if exit $? = 0, echo "pass"
else do something
您如何看待上述两种方法,您将如何处理? 任何代码片段都将不胜感激。
答案 0 :(得分:1)
假设servicename
在失败时返回非零退出代码,您可以执行以下操作:
if servicename > /dev/null 2>&1
then
echo pass
else
# do something
fi
如果servicename
没有正确设置退出代码:
if servicename | grep -q pass
then
echo pass
else
# do something
fi