jenkins shell构建步骤,其中变量包含单引号

时间:2018-10-31 19:22:50

标签: jenkins

我正在尝试使用jenkins安排重复的作业以从远程目录进行rsync。不幸的是,我只有ssh密码访问权限(没有密钥),所以我使用sshpass进行身份验证。密码包含单引号,无论我做什么,jenkins总是在单引号前加反斜杠。

详细信息:

  • jenkins在centos上运行,通过yum安装
  • 构建步骤是一个外壳
  • Shell中的
  • 命令基本上是`sshpass -p my'pass rsync -avc me@remotehost.com:/ my / dest / dir /

我尝试过的变化:

  • 将密码放入文件中,然后使用sshpass -f
    • 报告身份验证失败
  • 将上述命令放入脚本文件,让jenkins构建运行该脚本
  • 使用jenkins凭证/相关变量
  • 双引号/字符串连接的所有变体

请注意,我尝试过的所有操作都可以在命令行和/或通过crontab正常运行(尽管我正在尝试使用jenkins而不是crontab ...)

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试对外壳程序块使用Groovy多行字符串文字:

stage{
  sh """
    sshpass -p my'pass rsync -avc me@remotehost.com: /my/dest/dir/
  """
}