我想在Jenkinsfile
脚本中使用一个变量,然后将其值传递到shell脚本执行中(作为环境变量或命令行参数)。
但是下面的Jenkinsfile
:
for (i in [ 'a', 'b', 'c' ]) {
echo i
sh 'echo "from shell i=$i"'
}
给出输出:
a
from shell i=
b
from shell i=
c
from shell i=
期望的输出是这样的:
a
from shell i=a
b
from shell i=b
c
from shell i=c
你知道如何将i
的值传递给shell scipt吗?
编辑:根据Matt的回答,我现在使用以下解决方案:
for (i in [ 'a', 'b', 'c' ]) {
echo i
sh "i=${i}; " + 'echo "from shell i=$i"'
}
优点是,我不需要在shell脚本中转义“
。
试试这个:
for (i in [ 'a', 'b', 'c' ]) {
echo i
sh '''
echo "from shell i=$i"
'''
}
您的代码使用的是文字字符串,因此Jenkins变量不会在shell命令中插入。您需要使用“
在字符串中插入变量,sh
”
将只传递一个文本字符串。因此,我们需要在此处进行一些更改。
第一种方法是将“
更改为”
:
for (i in [ 'a', 'b', 'c' ]) {
echo i
sh "echo "from shell i=$i""
}
然而,现在我们需要在里面转义"
:
for (i in [ 'a', 'b', 'c' ]) {
echo i
sh "echo \"from shell i=$i\""
}
此外,如果一个变量直接附加到字符串中,就像您在上面所做的那样($i
到i=
),我们需要用一些大括号将其关闭:
for (i in [ 'a', 'b', 'c' ]) {
echo i
sh "echo \"from shell i=${i}\""
}
这会让你得到你想要的行为。
问题内容: 我想在脚本内部使用一个变量,然后将其值传递给Shell脚本执行(作为环境变量或命令行参数)。 但是以下内容: 给出输出: 所需的输出类似于: 任何想法如何将值传递给shell scipt吗? 编辑: 基于马特的]答案,我现在使用此解决方案: 好处是,我不需要在shell脚本中转义。 问题答案: 您的代码使用文字字符串,因此您的Jenkins变量将不会在shell命令中插入。您需要使用来
问题内容: 如何将值从javascript变量传递到razor变量,asp.net mvc razor视图引擎是否可能? 问题答案: 你不能 原因是他们不在同一时间“生活”。Razor变量是“服务器端变量”,在将页面发送到“客户端”后,它们不再存在。 当服务器收到视图请求时,它仅使用HTML,CSS和Javascript代码创建视图。没有C#代码,所有这些都被“翻译”为客户端语言。 当视图仍在服务
问题内容: 我正在尝试编写一个使用pdftk应用程序的PHP脚本,以将XFDF与PDF表单合并,然后将合并的PDF输出给用户。根据pdftk文档,我可以通过传递表单数据,并将PDF输出到流中。从命令行使用pdftk的通常的,非文件非流方式是: 要在命令行上使用流,请输入: 我有几个问题: 1)我已经得到pdftk,通过使用xfdf文件(而不是)返回输出,如下所示: 但是,根据Adobe Reade
问题内容: 我从Jenkins触发了一个shell脚本,该脚本获取日期并将其导出为环境(Linux)变量$ DATE。我需要在同一詹金斯工作中使用此$ DATE。我做了工作作为参数构建。创建一个字符串参数作为DATE值,如DATE = $ DATE。但这是行不通的。 请建议! 问题答案: 您提到要在外壳程序脚本中导出环境变量,该脚本可能是通过“执行外壳程序”步骤启动的。 问题是,一旦完成外壳程序步
问题内容: 我正在使用收缩路线https://npmjs.org/package/shrinkroute在nodejs中建立链接。我收到错误500 ReferenceError:收缩器未定义 如何将rinkeroute传递给routes / index.js?有没有更好的方法通过传递查询字符串args创建url? 问题答案: 一种解决方案是使用以下方法存储在您的应用程序对象中: 在中,您可以通过或
问题内容: 我想根据例如从jenkins传递的变量来运行测试用例,请选择要运行的测试用例:testcaseOne,testcaseTwo 在pom.xml(maven)中: 我有两个testng @test方法: 还有我的testng.xml文件: 如何根据我要运行的测试数量和数量来传递此参数?也许有完全不同的方式来做到这一点? 问题答案: 您可以在testng.xml文件http://testn