我正在编写一个脚本来检查 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:您可以避免 grep
和 uniq
都使用 awk。
关于linux - 如何将 uniq 命令的输出分配给 shell 脚本中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26914392/