bash脚本中的坏替换

时间:2017-11-24 09:45:24

标签: bash groovy

我有一些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

1 个答案:

答案 0 :(得分:3)

sh """../script.sh"""

刚刚启动shell脚本

和shell脚本对你的groovy变量一无所知

所以,你必须像这样将值传递给你的脚本:

sh """../script.sh \"${myParams.TEST}\" """

然后您可以通过myParams.TEST访问bash中$1的值,因为它是第一个参数