首页 > 解决方案 > jenkins ssh 到服务器无法存储为变量

问题描述

我让 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)"""

这里的结果不像预期的那样输出是 Jenkins home 在 server1 中的路径,而不是 server 2 的主路径。如何存储 server2 的主路径?

标签: shelljenkinssh

解决方案


在 shell 脚本上,存储远程主机执行输出的方式应该是这样的:

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

不知道您打算如何捕获并在管道上使用它,但考虑使用ssh 代理插件或ssh插件可能更有用。

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


推荐阅读