Я прошу помощи сейчас, потому что я боролся с простой командой sed
, вызываемой внутри Jenkinsfile, которая нуждается в небольшой переменной интерполяции.
Лучше показать команду вместо большого объяснения:
sh "sed -i -e 's/-RELEASE/-${unixEpoch}/g' myFile"
sed
не согласен с этим синтаксисом и печатает, что команда s/
не завершена.
Я прочитал документацию Groovy о String и GString, но до сих пор не понимаю, что я делаю неправильно?
Есть какие-нибудь подсказки?
РЕДАКТИРОВАТЬ:
Я получаю unixEpoch
, позвонив date +%s
, чтобы получить текущую метку времени.
Я напечатал команду, просто чтобы убедиться, что выполнено, и нашел:
sed -i -e 's/-RELEASE/-1525341883'
/g' myFile
Полная ошибка, отправленная sed
:
sed: -e expression #1, char 22: unterminated 's' command
Мне показалось странным, что напечатанная команда имеет \n
в середине ...