gpt4 book ai didi

jenkins - Jenkins sh 步骤中的 Groovy 多行 shell 脚本不返回标准输出

转载 作者:行者123 更新时间:2023-12-03 20:16:21 26 4
gpt4 key购买 nike

我正在尝试将 groovy shell 脚本的输出保存在一个变量中。

test = sh(returnStdout: true, script: "#!/bin/bash -l && export VAULT_ADDR=http://ourVault.de:8100 && export VAULT_SKIP_VERIFY=true && vault auth ${VAULT_TOKEN} && vault read -field=value test/${RELEASE2}/ID").trim()

但是没有输出,我想知道为什么它不捕获输出?

如果我这样做:
def test = ""
sh"""#!/bin/bash -l
export VAULT_ADDR=http://ourVault.de:8100
export VAULT_SKIP_VERIFY=true
vault auth ${VAULT_TOKEN}
${test}=\"\$(vault read -field=value emea/test/hockey/ios/${RELEASE2}/appID)\"
"""

我在控制台中看到了输出。但是,它也不会被捕获。还有其他方法可以捕获多行 sh 脚本的输出吗?

最佳答案

${}语法不是那样工作的。它只能用于向字符串添加内容。
returnStdout选项也可以与三引号脚本一起使用。因此,您可能想要执行以下操作:

def test = sh returnStdout:true, script: """
#!/bin/bash -l
export VAULT_ADDR=http://ourVault.de:8100
export VAULT_SKIP_VERIFY=true
vault auth ${VAULT_TOKEN}
echo "\$(vault read -field=value emea/test/hockey/ios/${RELEASE2}/appID)" """

关于jenkins - Jenkins sh 步骤中的 Groovy 多行 shell 脚本不返回标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53387555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com