我将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)"""
这里的结果并不像预期的那样,因为输出是服务器1中Jenkins home的路径,而不是服务器2的home路径。如何存储server2的主路径?
在shell scrip上,存储远程主机执行输出的方式应该是这样的:
result=$(ssh server2 "pwd" 2>&1)
不知道您计划如何捕获并在管道上使用它,但考虑使用ssh代理插件或ssh插件可能更有用。
同时,正如您在评论中指出的,在bash中的变量声明中使用空格是不正确的var = $(pwd)
应为var=$(pwd)