使用退出代码检查KornShell

时间:2012-01-03 10:20:46

标签: shell unix grep ksh

我正在尝试创建一个KornShell(ksh)脚本来检查进程的状态。 如果状态是“通过”,它将只是回显“通过”。 如果状态为“失败”,则会发送警报。

我可以想到两种方法:

  1. 将流程状态捕获到临时文件中,并在该文件中搜索术语“通过”或“失败”并相应地执行操作

    e.g。

    servicename > tmp.file
    grep pass tmp.file
    
    if exists, echo "pass"
    
  2. Grep表示“通过”或“失败”并使用退出代码进行其他操作

    e.g。

    servicename | grep pass
    
    if exit $? = 0, echo "pass"
    
    else do something
    
  3. 您如何看待上述两种方法,您将如何处理? 任何代码片段都将不胜感激。

1 个答案:

答案 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