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

如何在Jenkinsfile中执行Shell脚本?

安坚诚
2023-03-14
问题内容

我保留一个名为的shell脚本文件urltest.sh/var/lib/jenkins并从jenkins构建中执行该文件。

当我执行构建时,它失败。

The Environment Variables are - 
HOME -          /var/lib/jenkins ;
JENKINS_HOME -  /var/lib/jenkins

控制台输出如下:

Started by user anonymous
Building in workspace /var/lib/jenkins/workspace/AutoScript
[AutoScript] $ /bin/sh -xe /tmp/hudson2777728063740604479.sh
+ sh urltest.sh
sh: 0: Can't open urltest.sh
Build step 'Execute shell' marked build as failure
Finished: FAILURE

我在应该保留外壳脚本文件以便执行的位置上感到困惑。


问题答案:

如果看到错误消息,则提示

在工作空间中构建/ var / lib / jenkins / workspace / AutoScript

并根据您的评论将urltest.sh放入

/ var / lib / jenkins

因此,詹金斯无法找到该文件。在构建步骤中执行此操作,它将起作用

cd             # which will point to /var/lib/jenkins
./urltest.sh   # it will run your script

如果仍然失败,请尝试将文件扔给jenkin,因为jenkin用户可能没有文件许可权,但是我认为,如果您执行上述步骤,则可以运行。



 类似资料:
  • 问题内容: 在Jenkinsfile Groovy脚本阶段,假设我要发出一个Linux命令来输出字符串的行和列,并想要在特定行的输出中获取第n列。这样的命令的一个示例是“ ls -al”。所以我这样做正确吗? 但是,如何获取本质上为$ {COL [4]}的值,该值是“ ls -al”命令的第五列,即目录大小? 谢谢! 问题答案: 您在示例中显示的bash脚本不会返回正确的目录大小。它将以递归方式返

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

  • 我正在尝试从jenkinsfile执行一组命令。问题是,当我尝试将stdout的值分配给变量时,它不起作用。我尝试了双引号和单引号的不同组合,但到目前为止没有运气。 在这里,我使用最新版本的jenkinsfile以及旧版本执行脚本。将shell命令放入 """ """ 不允许创建新变量,并给出client_name命令不存在的错误。 我想将命令p4客户端-e$client_name的标准输出分配给

  • 我有一个gradle构建设置,在开始时,我想在准备我的环境的子目录中执行一个shellscript。 但是,当我通过调用 或仅通过构建项目来执行任务时,会发生以下错误: 不幸的是,这就是我得到的一切。 我也尝试了以下 - 相同的错误。 我在Windows上使用Gradle 1.10(Android需要),在Cygwin shell中。有什么想法吗?

  • 问题内容: 我有一个Windows从站,安装了bash。我正在尝试在其上运行Shell脚本作为预构建步骤。关于如何执行此操作的任何想法? 问题答案: 您需要使用脚本作为参数运行bash: 您可能还需要根据环境提供完整的bash路径。

  • 问题内容: 我想运行一个shell脚本来在构建我的应用程序时更改string.xml中的值。我应该在哪里在gradle中运行脚本,因为其中没有任务。或者,因为我将使用Jenkins构建应用程序,所以我应该在Jenkins服务器上运行脚本吗?请帮帮我。 问题答案: 您可以添加一个运行脚本并使其依赖于构建的步骤。