我尝试了以下代码的各种变体,但似乎都不起作用
def runScript(command){
sh '''#!/bin/bash
file="env.txt"
while IFS='=' read -r key value
do
export ${key}="${value}"
done < "$file"
pwd
"${command}"
'''
}
command
是要从env.txt
重新创建环境变量之后要执行的动态shell命令。
有什么想法吗?
答案 0 :(得分:1)
使用此
def runScript(command){
sh '''#!/bin/bash
file="env.txt"
while IFS='=' read -r key value
do
export ${key}="${value}"
done < "$file"
pwd
''' + "${command}"
}
单引号'''
将创建多行shell脚本。 "
引号将获取命令变量的值并将其与shell脚本连接。
请注意,有两个外壳变量key
和value
,因此'''
不能替换为"""
参考文献:
Access a Groovy variable from within shell step in Jenkins pipeline