Я сталкиваюсь с проблемой, когда пытаюсь выполнить следующую команду:
aws ecs list-task-definitions | grep Foo-Task-Testing | awk -F '/' '{print $2}'
Это возвращает именно то, что я ищу, это просто имя определения задачи.
При запуске команды в CLI с помощью просто grep я получаю это:
"arn:aws:ecs:us-east-1:xxxxxxxxxx:task-definition/Foo-Task-Testing-TaskDefinition-OYBZ78KBUI57:1",
При включении Awk я получаю:
Foo-Task-Testing-TaskDefinition-OYBZ78KBUI57:1"
Однако, когда я пытаюсь добавить это в мой конвейер Jenkins:
ecsTaskDefinitionName = Foo-Task-Testing
ecsTaskDefinition = sh(returnStdout: true, script: "aws ecs list-task-definitions | grep $ecsTaskDefinitionName | awk -F '/' '{print \$2}'").trim()
Я всегда получаю это сообщение об ошибке:
/home/jenkins/workspace/foo_test_PR-828@tmp/durable-a5ce4670/script.sh: 1: /home/jenkins/workspace/foo_test_PR-828@tmp/durable-a5ce4670/script.sh: Syntax error: Unterminated quoted string
У меня такое ощущение, что это связано с тем, как яЯ использую Awk в Groovy, но я не могу найти достаточно примеров в Интернете, чтобы подтвердить это.Кто-нибудь может предоставить способ сделать это в Groovy без использования Awk, или любой опытный программист Groovy может сказать мне правильный способ передачи Awk?