【问题标题】:how to store output in variable when a command is executed from Jenkins on remote machine via ssh?当通过 ssh 从远程机器上的 Jenkins 执行命令时,如何将输出存储在变量中?
【发布时间】:2019-02-01 20:03:14
【问题描述】:

我正在尝试对 VM 执行 ssh 并获取文件夹的文件列表,将结果存储在 Jenkins 执行 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 中。

请帮忙。

【问题讨论】:

  • 您是想将一个文件夹中的所有文件复制到另一个文件夹,还是只获取文件列表并打印出来?
  • 只是试图获取文件列表并将其存储在变量中。

标签: linux shell jenkins


【解决方案1】:

您的此处文档就像一个双引号字符串; $(ls -l)$folder 被评估之前内容被用作远程主机上的脚本。引用分隔符使其像单引号字符串一样处理。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 2013-11-22
    • 2020-10-21
    • 1970-01-01
    相关资源
    最近更新 更多