如何在bash中回显字符串后面的变量?

如何在bash中回显字符串后面的变量?,bash,output,stderr,io-redirection,openssh,Bash,Output,Stderr,Io Redirection,Openssh,我需要在一些xml节点之间打印“ssh-V”命令的输出。我想让它看起来像 <sshname>OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017</sshname> OpenSSH_7.4p1、OpenSSL 1.0.2k-fips 2017年1月26日 但是下面的代码在节点之前打印命令的输出 sshname=$(ssh -V) echo "<sshname> $sshname</sshname&g

我需要在一些xml节点之间打印“ssh-V”命令的输出。我想让它看起来像

<sshname>OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017</sshname>
OpenSSH_7.4p1、OpenSSL 1.0.2k-fips 2017年1月26日
但是下面的代码在节点之前打印命令的输出

sshname=$(ssh -V)
echo "<sshname> $sshname</sshname>"
sshname=$(ssh-V)
echo“$sshname”
结果:

OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
<sshname> </sshname>
OpenSSH_7.4p1、OpenSSL 1.0.2k-fips 2017年1月26日
为什么会这样?我怎样才能绕过它呢?

也将ssh的stderr(2)重定向到stdout(1):


见:

sshname=$(ssh -V 2>&1)