Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在jenkins管道(以前称为工作流)中启动bash登录shell?_Jenkins_Jenkins Workflow - Fatal编程技术网

如何在jenkins管道(以前称为工作流)中启动bash登录shell?

如何在jenkins管道(以前称为工作流)中启动bash登录shell?,jenkins,jenkins-workflow,Jenkins,Jenkins Workflow,我刚刚开始将我的Jenkins作业转换为新的Jenkins管道(工作流)工具,而我在使用bash登录shell获取sh命令时遇到了问题 我试过了 sh ''' #!/bin/bash -l echo $0 ''' 但是,echo$0命令总是在交互式shell中执行,而不是在bash登录shell中执行。@izzekil是正确的!!!!非常感谢你 所以我想详细说明一下发生了什么。我将sh与'一起使用,这表示多行脚本。但是,转储到jenkins节点的结果shell脚本将向下一行,而不是第一行。所以

我刚刚开始将我的Jenkins作业转换为新的Jenkins管道(工作流)工具,而我在使用bash登录shell获取
sh
命令时遇到了问题

我试过了

sh '''
#!/bin/bash -l
echo $0
'''

但是,
echo$0
命令总是在交互式shell中执行,而不是在bash登录shell中执行。

@izzekil是正确的!!!!非常感谢你

所以我想详细说明一下发生了什么。我将
sh
'
一起使用,这表示多行脚本。但是,转储到jenkins节点的结果shell脚本将向下一行,而不是第一行。所以我可以用这个来解决这个问题

sh '''#!/bin/bash -l
echo $0
# more stuff I needed to do,
# like use rvm, which doesn't work with shell, it needs bash.
'''

她应该在剧本的第一行:嘘/bin/bash-l echo$0'@izzekil是对的!!!!呃。你应该可以去掉sh“”(和结尾“”)。@gaoithe,你能举例说明你的意思吗?只要有#/bin/bash作为作业配置中的第一行。我试着在答案编辑中解释得更好。@gaoithe,需要这些行,这不是执行shell作业,这是使用Jenkins管道,所以这是用groovy编写的Jenkins作业。有没有办法为整个Jenkins文件指定shell,而不是每次调用“sh”命令?