我有一些groovyscript。我执行一个shell命令:
sh "echo ${myParams.TEST}"
打印:
works
现在我尝试在shell中的bash脚本中执行相同的操作:
sh'''#!/bin/bash
echo "${myParams.TEST}"
'''
但这总是给出了同样的错误:bad substitution
编辑:
sh """#!/bin/bash
echo \"${myParams.TEST}\"
"""
这有效:输出为:works
现在我尝试:
sh """. ./script.sh"""
script.sh
看起来像:
#!/bin/bash
echo "hey"
echo '\"${myParams.TEST}\"'
再次输出:
hey
bad substitution
答案 0 :(得分:3)
sh """../script.sh"""
刚刚启动shell脚本
和shell脚本对你的groovy变量一无所知
所以,你必须像这样将值传递给你的脚本:
sh """../script.sh \"${myParams.TEST}\" """
然后您可以通过myParams.TEST
访问bash中$1
的值,因为它是第一个参数