Jenkinsfile中的sh'''<command>'''-三对勾是什么意思?

时间:2019-08-30 14:06:36

标签: jenkins sh

我有一个Jenkinsfile,该文件在命令周围使用三个刻度线来执行:

sh ''' command '''

我们不知道为什么需要三个刻度线或它们起什么作用。 在Jenkinsfile文档集中可以看到这种语法。

2 个答案:

答案 0 :(得分:5)

这与bash无关(在其中,三引号根本没有特殊含义),与Groovy无关(与解析Jenkinsfiles的单独的非bash解释器有关)。 / p>

在Groovy中,但不是在bash中,字符串必须使用三引号引起来以跨多行。

在Jenkinsfile中的sh指令的上下文中,用三引号引起来的字符串的 content 作为脚本传递给外壳程序;但是,语法是由Groovy解析的,因此只有Groovy关心报价单本身(而不是报价内容)。

答案 1 :(得分:0)

您能否进一步了解它是哪种命令,它是unix命令还是某些脚本?

有问题的单引号和它的变体,如'''(3个滴答),跳过了变量扩展,它可以用来显示正在执行的内容。

echo '''Updating JAVA_HOME variable :
export $JAVA_HOME="$NEW_JAVA_HOME" '''

但是,在您的问题中,命令(一些字符串)被括在3个刻度线之间,并且sh试图执行该命令或脚本。下面是一个这样的例子

$ echo "echo hello" > /tmp/tesh.sh
$ sh '''/tmp/test.sh'''
hello