在多行中分离sh命令

3

我在Jenkinsfile中有一个sh命令。

sh 'command1 command2'

"最初的回答":如何在多行中编写此内容?
sh '''
command1 \
command2
'''

最初的回答
或者
sh '''
command1 &&
command2
'''

1
如果您已经在Jenkins Pipeline中为shell解释器指定了多行命令,则最好不要使用if语句。 - Matt Schuchard
1
如果你尝试其中一个或另一个,会发生什么? - David Maze
1
@Matt Schuchard..... 没有起作用。已经尝试过了。 - Shanmukh Borole
@DavidMaze 我遇到了以下错误:groovy.lang.MissingPropertyException: No such property: login for class: groovy.lang.Binding - Shanmukh Borole
3个回答

3
解决方案是:
sh """
command1 \\
command2 \\
"""

这对我有效。

2
我认为你应该把两者结合起来:最初的回答。
sh '''
command1 && \
command2
'''
<最初的回答>

&& 允许执行另一个命令。

\ 告诉shell忽略接下来的字符(新行)。


无法分离命令吗?sh ''command1"sh "command2" - avalla

0

对我来说最好的方法是(允许变量扩展和可读的缩进源代码):

#!/usr/bin/env bash
sh -c '<<< EOL
  command 1
  command 2
  ...
'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接