当通过ssh从远程计算机上的Jenkins执行命令时,如何将输出存储在变量中?

时间:2019-02-01 20:03:14

标签: linux shell jenkins

我正在尝试对VM执行ssh并获取文件夹文件列表,并将结果存储在Jenkins execute shell中的变量中

*sshpass -p password ssh -T -o "StrictHostKeyChecking no" user@SERVER << ENDHERE

cd /some/folder/

folder=$(ls -l) 

echo $folder

ENDHERE*

echo $folder为空,但是如果我直接在执行shell上执行ls -l,它将显示Jenkins控制台中的列表未存储在$folder中。

请帮助。

1 个答案:

答案 0 :(得分:0)

您的此处文档就像一个双引号字符串; $(ls -l)$folder在内容被用作远程主机上的脚本之前被评估。引用定界符以将其视为单引号字符串。

... << 'ENDHERE'
cd /some/folder
folder=$(ls -l)
echo "$folder"
ENDHERE