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

时间:2018-02-27 20:28:05

标签: java linux parsing

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

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

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

1 个答案:

答案 0 :(得分:0)

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

'\"'

ssh响应将转义的报价发送到远程服务器的需要。 (我在第一次迭代时错过了这个。)然而,在本地机器上进行重定向和后处理更容易,因为OLDJAVA=$(ssh -q $server java -version 2>&1 | cut -s -d \" -f2) 将传回stdout和stderr。这导致更简单的

-t

在这两种情况下,我都删除了-q选项,因为它似乎并不需要。 if object_id('tempdb..##t1') is not null drop table #t1 select * into ##t1 from patientview where isdate(dob)=1 select distinct(ptr.RecordID) from dbo.PatientRecord as ptr where ptr.CHName like 'Access2Loc%' AND ptr.RecordID in( select ( case when (DATEDIFF(hour, convert(date,DOB,110), GETDATE())/8766)>18 then PatientID else NULL end ) as RecordID from ##t1 ) drop table ##t1 选项可能会产生比解决更多的问题(因为您肯定希望对ssh错误做出反应。)