Как мне ввести параметры в скрипт Jenkins perl из командной строки?

#perl #jenkins #parameters #csh

#perl #дженкинс #параметры #csh

Вопрос:

Предыстория

Я запускаю задание Jenkns, называемое Job A, которое передает свои параметры сборки в скрипт perl, называемый ScriptA.pl в следующем формате ниже:

 #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####
  

Проблема

Я пытаюсь запустить этот скрипт из командной строки Linux в cshell следующим образом, чтобы проверить, работает ли компонент выполнения:

 /% ScriptA.pl jetFuel steelBeams
  

И он считает, что параметры не были введены, поскольку возвращается эта ошибка

 PARAM1 is a required parameter.
  

Вопрос

Как мне правильно ввести параметры Jenkins в скрипт Jenkins из командной строки?

Ответ №1:

Если вы не можете изменить скрипт Perl таким образом, чтобы он считывал параметры командной строки (что улучшило бы его общее удобство загрузки), возможно, создайте простой скрипт-оболочку:

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

(Да, sh . Никто не должен использовать csh ни для чего в 2019 году.)

Комментарии:

1. Я знаю, что csh отстой , поверьте мне, я спрашивал это на работе о том, почему мы не будем использовать bash по умолчанию. Но у меня нет опции в этом случае, поскольку компания по умолчанию использует cshell.