KornShell 使用退出代码进行检查

发布于 2024-12-25 03:17:07 字数 428 浏览 2 评论 0原文

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

我可以想到两种方法:

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

    例如

    服务名称>临时文件
    grep 传递 tmp.file
    
    如果存在,则回显“pass”
    
  2. Grep 表示“通过”或“失败”,并使用退出代码进行其他操作

    例如

    服务名称 | grep 通行证
    
    如果退出 $? = 0,回显“通过”
    
    否则做某事
    

您如何看待上述两种方法?您将如何处理? 任何代码片段将不胜感激。

I am trying to create a KornShell (ksh) script to check the status of a process.
If the status is "pass", it will just echo "pass".
If the status is "fail", it will send an alert.

I can think of two methods:

  1. Capture the process status into a temp file and search for the terms "pass" or "fail" in that file and action accordingly

    e.g.

    servicename > tmp.file
    grep pass tmp.file
    
    if exists, echo "pass"
    
  2. Grep for "pass" or "fail" and use the exit code for other operations

    e.g.

    servicename | grep pass
    
    if exit $? = 0, echo "pass"
    
    else do something
    

What do you think of the above two approaches and how would you approach it?
Any code snippets would be greatly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情归归情 2025-01-01 03:17:07

假设 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

Assuming servicename returns a non-zero exit code on failure, you can do:

if servicename > /dev/null 2>&1
then
    echo pass
else
   # do something
fi

If servicename doesn't set its exit code correctly:

if servicename | grep -q pass
then
    echo pass
else
   # do something
fi
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文