Как получить расширение файла в Jenkins Pipeline - PullRequest
0 голосов
/ 17 января 2020

Используя bash, я могу получить расширение файла просто:

FILE_BASENAME="abcd.001.xyz.txt"
FILE_EXTENSION="${FILE_BASENAME##*.}"
echo $FILE_EXTENSION

Я также могу получить тот же результат, используя немного другой синтаксис:

FILE_BASENAME="abcd.001.xyz.txt"
RESULT=$(echo "${FILE_BASENAME##*.}")
echo $FILE_EXTENSION

Независимо от того, каким образом при обоих подходах получается строка txt.

К сожалению, тот же синтаксис в конвейере Jenkins приводит к пустой строке:

FILE_EXTENSION = sh(script: '$(echo "${FILE_BASENAME##*.}")', returnStdout: true).trim() 

Я также пробовал вариант этой команды с

FILE_EXTENSION = sh(script: 'echo $(echo "${FILE_BASENAME##*.}")', returnStdout: true).trim() 

, который также не работает.

Как получить расширение файла в Jenkins?

1 Ответ

0 голосов
/ 17 января 2020

Предназначен для поддержки трехсимвольного расширения файла:

  FILE_BASENAME="abcd.001.xyz.txt"
  FILE_NAME = FILE_BASENAME.replaceAll(".[a-zA-Z]{3}\$", "")
  FILE_EXT = FILE_BASENAME.replaceAll(FILE_NAME, "")
  echo ("FILE_NAME: ${FILE_NAME} FILE_EXT: ${FILE_EXT}")

Выход:

FILE_NAME: abcd.001.xyz FILE_EXT: .txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...