【问题标题】:How do I input paramters into a Jenkins perl script from command line?如何从命令行将参数输入到 Jenkins perl 脚本中?
【发布时间】:2019-03-12 19:03:56
【问题描述】:

背景

我正在运行一个名为 Job A 的 Jenkns 作业,它将其构建参数提供给一个名为 ScriptA.pl 的 perl 脚本,格式如下:

#Check the input params
my $PARAM1 = $ENV{ "PARAM1" };
my $PARAM2 = $ENV{ "PARAM2" };
.....more params fed in the same way
if ( $PARAM1 eq "" ) {
    print "PARAM1 is a required parameter.\n";
    exit 1;
}
if ( $PARAM2 eq "" ) {
    print "PARAM2 is a required parameter.\n";
    exit 1;
}
.....more param checks done in the same way
###Script then runs a bunch of execution statements####

问题

我正在尝试通过以下方式在 cshell 中从 Linux 命令行运行此脚本,以测试执行组件是否正常工作:

/% ScriptA.pl jetFuel steelBeams

并且它认为没有输入任何参数,因为返回了这个错误

PARAM1 is a required parameter.

问题

如何从命令行正确地将 Jenkins 参数输入到 Jenkins 脚本中?

【问题讨论】:

    标签: perl jenkins parameters csh


    【解决方案1】:

    如果您无法修改 Perl 脚本以使其读取命令行参数(这将提高其启动的一般可用性),则可以创建一个简单的包装脚本:

    #/bin/sh
    env PARAM1="$1" PARAM2="$2" perl ScriptA.pl
    

    (是的,sh。在 2019 年,任何人都不应使用 csh。)

    【讨论】:

    • 我知道csh sucks 相信我,我在工作中问过这个问题,为什么我们不使用 bash 作为默认值。但在这种情况下我没有选择,因为公司默认是 cshell。
    猜你喜欢
    • 1970-01-01
    • 2011-07-22
    • 2012-08-29
    • 2015-11-13
    • 2021-02-15
    • 2013-07-05
    • 1970-01-01
    • 2021-11-13
    • 2011-09-27
    相关资源
    最近更新 更多