当前位置: 首页 > 面试题库 >

无法在Jenkins管道中运行Shell脚本

须捷
2023-03-14
问题内容

我能够运行以下shell脚本,但无法从Jenkins管道代码运行。

尝试1。

node('buildnode') {

def value = "Myvalue"

def key = "Mykey"

sh '''

DATA=$(printf "%-50s \"$key\"" "$value")

echo "$DATA"

'''

}

输出:

++ printf '%-50s ' ''
+ DATA='

尝试2:

尝试过sh“”“

DATA=$(printf "%-50s \"$key\"" "$value")

echo "$DATA"

" " "

输出

美元符号后的非法字符串体字符;解决方案:要么转义文字美元符号,"\$5"要么将值表达式括起来"${5}"

有人能帮我吗?


问题答案:

这应该工作。

node('buildnode') {
    def value = "Myvalue" 
    def key = "Mykey"

    sh """
    DATA=\$(printf "%-50s \"${key}\" \"${value}\"")
    echo "\$DATA"
    """
}

您还需要在调用下面的新subshel​​l时转义$ """ """

DATA=$(printf "%-50s \"${key}\" \"${value}\"")


 类似资料:
  • 我使用Jenkins在docker容器中使用以下命令 码头工人拉詹金斯/詹金斯 docker run-p8080:8080--name=jenkins master jenkins/jenkins 获取此错误 calc.py/var/jenkins_home/workspace/pythoncalculator@tmp/耐用-b7e99e01/脚本。sh:1:/var/jenkins\u home

  • 我有一个Jenkinsfile,其中构建和测试在同一个Slaver上运行。我的要求是,构建必须在一个从站(比如A)上,测试必须在另一个从站(比如B)上运行。 我刚刚设置了奴隶B,我可以看到我的奴隶A和B都在Jenkins- 以下是看到的问题: 1.)在构建阶段成功后,我得到以下错误: " java.lang.NoSuchMethodError:在步骤[archive,bat,build,catch

  • 问题内容: 我目前正在尝试从管道中将groovy脚本作为节点之一运行,但是遇到了以下错误: 另外,我尝试以Groovy的方式安装插件,但由于某种原因,它将无法安装。每当我刷新工具页面时,安装程​​序就会消失。我安装groovy错误吗?请帮忙! 编辑:相关数据 而且ideainspect.groovy文件是shebang的可执行文件,这可能是问题所在。 问题答案: 您的jenkins用户在使用它时会

  • 问题内容: Jenkins脚本化的管道。两个问题: 我有一个全局变量var,我正尝试在shell内访问其值。但它什么也没打印 var的值是使用shell脚本在其中一个阶段中设置的,以便在下一个阶段中进行访问,但它在shell中不打印任何内容。 我想念什么?(请参见下面的脚本) 问题答案: 您的示例不起作用,因为您使用的是带单引号的字符串文字。从Groovy手册(重点是我的): 任何Groovy的表

  • 我查看了以下文档:https://docs.sonarqube.org/display/scan/analysy+with+sonarqube+scanner+for+jenkins 然而,我不能让它工作。首先,文档似乎需要更新,因为示例中的语法是错误的。在最新版本的声明性管道中,在-tag中是必需的。此外,-关键字只有在-标记中才会解析。 null

  • 问题内容: 我正在尝试从Jenkins管道中的文件运行Powershell脚本。 我已经阅读了本文,该文章显示了如何运行输入到管道中的Powershell脚本,但是我无法从文件中运行脚本。 我努力了: 和各种组合,但无法弄清楚该如何做。 问题答案: 很快就弄清楚了,该行应该已经阅读