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