linux - Linux shell 脚本中的条件

标签 linux bash shell

我正在编写一个简单的 Linux shell 脚本来检查正在运行的服务的状态,如果有任何进程未运行,它将显示未运行的进程的名称。

我已经在下面尝试过,现在卡在了 else 语句中。 我想要输出的 else 语句是显示的 4 个变量中具有非零值的变量的名称。

如果 RUNWRAPPERSTATUS 和 EKYCSTATUS 不为零,输出应该如下所示。

There is some while starting RUNWRAPPER AND EKYC . Kindly verify

实际代码从这里开始:

ps -aef | grep -i NGEjbClient
RUNWRAPPERSTATUS=$(echo $?)

ps -aef | grep -i startSMS
RUNSTATUS=(echo $?)

ps -aef | grep -i DirectoryService
DISSTATUS=(echo $?)

ps -aef | grep -i EKYCUploadWorkitem
EKYCSTATUS=(echo $?)


if [ $RUNWRAPPERSTATUS -eq 0 ] && [ $RUNSTATUS -eq 0 ] && [ $DISSTATUS -eq 0 ]  && [ $EKYCSTATUS -eq 0 ]

then
    echo "Jboss Services and App Services started"

最佳答案

展示您可以做什么的简单脚本:

SERVICES="NGEjbClient startSMS DirectoryService EKYCUploadWorkitem"
for service in $SERVICES
do
    if ! pgrep $service
    then
        echo "$service is not running. Please verify"
    fi
done

注意事项:

  • 使用pgrep 搜索进程名
  • 尽可能使用循环来避免重复代码。

关于linux - Linux shell 脚本中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57884025/

相关文章:

shell - 如何为 python 脚本 "python filename.py"创建关键字

linux - 使用命名管道创建 'loop'

linux - 使用 sed 匹配第 5 个字段中的文本

linux - 类型错误执行 aapt : Cannot run program "/opt/android-sdk-linux/build-tools/19.0.1/aapt": java. io.IOException

linux - NFS 在客户端上显示安全上下文 "?"/"blank"?

linux - cp 命令在 azure devops 的构建管道中的 Bash 脚本中不起作用

linux - 如何查找文件中的第 n 个单词(Linux Shell)

bash - getopts 不会连续调用两次?

linux - 如何知道当前 bash session 的进程 ID?

ruby - 我应该如何在 Ruby 中检查 EOF