我正在尝试对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
中。
请帮助。
答案 0 :(得分:0)
您的此处文档就像一个双引号字符串; $(ls -l)
和$folder
在内容被用作远程主机上的脚本之前被评估。引用定界符以将其视为单引号字符串。
... << 'ENDHERE'
cd /some/folder
folder=$(ls -l)
echo "$folder"
ENDHERE