如何将 uniq 命令的输出分配给 shell 脚本中的变量



我正在编写一个脚本来检查WAS服务器的状态,以确认服务器是已启动还是无法启动。服务器有 2 个 JVM。因此,要检查任何一个 JVM 是否启动,我使用的是 uniq 命令。

假设 JVM1 失败了,JVM2 启动了,所以以下命令

sh /home/wasprofile/`hostname`/bin/serverStatus.sh -all > /tmp/ServerState
grep "Application Server" /tmp/ServerState|awk '{print $7}'|uniq

将输出显示为:

FAILED
STARTED

那么现在我应该如何在运行时将此输出分配给两个不同的变量?我的意思是这样的:

a=FAILED
b=STARTED
对此

的任何帮助都非常感谢。

您可以将read与进程替换一起使用:

read a b < <(awk '/Application Server/ && !seen[$7]++{printf "%s ", $7}' /tmp/ServerState)

PS:您可以使用awk避免grepuniq

最新更新