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

时间:2014-11-13 17:05:54

标签: linux bash shell

我正在编写一个脚本来检查WAS服务器的状态,以确认服务器是STARTED还是FAILED启动。服务器有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

非常感谢您对此的任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以将read与流程替换结合使用:

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

PS:您可以使用awk避免grepuniq