Если оператор в сценарии оболочки - декларативный конвейер - PullRequest
0 голосов
/ 07 февраля 2020

Я использую следующий оператор if в декларативном конвейере сценария оболочки:

def currTaskDef = sh (
returnStdout: true,
script:  """
         #!/bin/bash
         RESULT=`(aws ecs describe-task-definition --task-definition ${env.TASK_FAMILY} | egrep 'revision' | tr ',' ' ' | awk '{print \$2}') 2> /dev/null`
         if ( ! "\$RESULT" ) then
            echo 1
         else                                                                    
              aws ecs describe-task-definition  --task-definition ${env.TASK_FAMILY} \
                                              | egrep 'revision'                     \
                                              | tr ',' ' '                           \
                                              | awk '{print \$2}'
         fi
         """
).trim()

Я получаю следующее разрешение, в котором отказано:

/home/jenkins/workspace/dev-test-local@tmp/durable-28ccc40c/script.sh: 4: /home/jenkins/workspace/dev-test-local@tmp/durable-28ccc40c/script.sh: : Permission denied
...
Finished: SUCCESS

Если я использую оператор bash if, если не работает:

if [[ ! "\$RESULT" ]]; then
  echo 1 
else                                                                   
    aws ecs describe-task-definition  --task-definition ${env.TASK_FAMILY} \
                                    | egrep 'revision'                     \
                                    | tr ',' ' '                           \
                                    | awk '{print \$2}'                    \
fi

Вывод:

+ [[ !  ]]
/home/jenkins/workspace/dev-test-local@tmp/durable-d7af8721/script.sh: 4: /home/jenkins/workspace/dev-test-local@tmp/durable-d7af8721/script.sh: [[: not found

Как избавиться от отказа в разрешении и почему не работает оператор bash if?

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