jenkins ssh 到服务器无法存储为变量

jenkins ssh to a server is unable to store as a variable

我将 Jenkins 设置为 server1,并且我创建了一个 Jenkins 作业,它通过 ssh 连接到服务器 2 并使用 pwd 打印路径。代码如下:

#!/bin/bash

set -e
set -x
ssh server2 """pwd"""

它按预期打印服务器 2 的主路径。现在我想将路径存储到一个变量中。我试过下面的代码:

#!/bin/bash

set -e
set -x
ssh server2 """var = $(pwd)"""

这里的结果与预期不符,因为输出的是 server1 中 Jenkins 主目录的路径,而不是服务器 2 的主目录路径。如何存储 server2 的主目录路径?

On shell scrip 存储远程主机执行输出的方式应该是这样的:

result=$(ssh server2 "pwd" 2>&1)

不知道您打算如何捕获它并在您的管道中使用它,但考虑使用 ssh agent plugin or ssh 插件可能更有用。

同时正如您在评论中指出的那样,在 bash 中的变量声明中有空格是不正确的 var = $(pwd) 应该是 var=$(pwd)