如何从"java -version"解析 Java 的版本号并将其分配给远程主机上的变量?



我想在一个命令中的linux中获取Java版本,然后将输出保存到变量。

使用下面的命令将变量分配给Java的本地版本。我想在远程主机上运行Java -version,解析版本号,然后将输出保存到变量。

ssh -q -t $server "OLDJAVA=`java -version 2>&1 | cut -s -d '"' -f2`"

您需要在远程主机上运行命令并将局部变量设置为输出,SSH将转发:

OLDJAVA=$(ssh -q $server "java -version 2>&1 | cut -s -d '"' -f2")

'"'响应将逃脱的报价发送到远程服务器的需求。(我错过了第一次迭代。(但是,在本地计算机上进行重定向和后处理要容易,因为ssh将同时通过STDOUT和STDERR。这导致了一些简单的

OLDJAVA=$(ssh -q $server java -version 2>&1 | cut -s -d " -f2)

在这两种情况下,我都删除了-t选项,因为似乎不需要。-q选项可能会产生比解决的问题更多的问题(因为您肯定想对SSH错误做出反应。(

最新更新