当前位置: 首页 > 面试题库 >

如何在Jenkins Groovy中的多行shell脚本中设置变量?

太叔经赋
2023-03-14
问题内容

假设我在Jenkins中有一个Groovy脚本,其中包含多行shell脚本。如何在该脚本中设置和使用变量?正常方式会产生错误:

sh """
    foo='bar'
    echo $foo
"""

捕获:groovy.lang.MissingPropertyException:否这样的属性:foo对于类:groovy.lang.Binding


问题答案:

您需要更改为三重单引号'''或转义美元\$

然后,您将跳过常规模板,这就是给您这个问题的原因



 类似资料:
  • 我正在Windows上运行npm,希望使用 但是npm在cmd下执行脚本。不知道我可以将此更改为脚本:其中bat1.bat是一个cmd-bat文件,它使用windows样式调用或start命令并行运行命令。它可以工作,但为我提供了一个仅在windows上工作的脚本。 如果我能让npm在bash克隆或cygwin下运行脚本,那就简单多了。 我尝试了但仍然运行cmd。exe 有没有办法告诉npm使用特

  • 拉斯宾(杰西)-root@RaspberryPi-腻子 在我输入的终端中 现在我得到了一个包含此代码的脚本 有一个cronjob每小时启动一次这个脚本 苏。一定有什么地方出错了。因为他将变量$finalanswer解读为nothing。 这意味着在此脚本之外定义的变量将不起作用? 我该如何解决这个问题?

  • 问题内容: 我保留一个名为的shell脚本文件 ,并从构建中执行该文件。 当我执行构建时,它失败。 控制台输出如下: 我在应该保留外壳脚本文件以便执行的位置上感到困惑。 问题答案: 如果看到错误消息,则提示 在工作空间中构建/ var / lib / jenkins / workspace / AutoScript 并根据您的评论将urltest.sh放入 / var / lib / jenkin

  • 问题内容: Jenkins脚本化的管道。两个问题: 我有一个全局变量var,我正尝试在shell内访问其值。但它什么也没打印 var的值是使用shell脚本在其中一个阶段中设置的,以便在下一个阶段中进行访问,但它在shell中不打印任何内容。 我想念什么?(请参见下面的脚本) 问题答案: 您的示例不起作用,因为您使用的是带单引号的字符串文字。从Groovy手册(重点是我的): 任何Groovy的表

  • 问题内容: 我想将要在以后使用的命令存储在变量中(不是命令的输出,而是命令本身) 我有一个简单的脚本,如下所示: 但是,当我尝试更复杂的操作时,它会失败。例如,如果我做 输出为: 知道如何将这样的命令(带有管道/多个命令)存储在变量中以备后用吗? 问题答案: 使用eval:

  • 问题内容: 如何在Linux中从C执行Shell脚本? 问题答案: 这取决于您要对脚本(或要运行的任何其他程序)执行的操作。 如果只想运行脚本,这是最容易的事情,但是它也做其他一些事情,包括运行shell并让其运行命令(在大多数* nix下是/ bin / sh)。 如果您要通过标准输入来输入shell脚本或使用其标准输出,则可以使用(和)设置管道。这也使用外壳程序(大多数* nix下是/ bin