我正在尝试对 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 中
。
请帮忙。
最佳答案
您的此处文档就像一个双引号字符串; $(ls -l)
和 $folder
在内容被用作远程主机上的脚本之前进行评估。引用分隔符以将其视为单引号字符串。
... << 'ENDHERE'
cd /some/folder
folder=$(ls -l)
echo "$folder"
ENDHERE
关于linux - 当通过 ssh 在远程机器上从 Jenkins 执行命令时,如何将输出存储在变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54486451/