2015-11-27 3 views
0

мне нужно вызвать апи вызов Rest, если я столкнуться с неисправностью в поле в CSV-файле:Shell/Баш скрипт для вызова локон

У меня есть файл CSV, который выглядит следующим образом:

проектAPI_NAMEapi_resultответ

хуг PASS 200, дата: пн, 16 ноября 2015 20:52:26

б абв FAIL 501, Дата: Mon, 17 Nov 2015 20:52:26

гр Мась PASS 200, дата: пн, 18 Nov 2015 20:52:26

Мне нужен shellbash сценарий чтобы сделать следующее

1) вызывать завиток каждый раз, когда есть ошибка в api_result.

2) Передайте значения из CSV в мою команду curl. Пример я должен передать значение API_NAME из CSV в качестве резюме в моих данных, как показано ниже:

Запрос:

curl POST --data {see below} -H "Content-Type: application/json" http://localhost:8090/rest/api/2/issue/ 

данных

{ 
    "fields": { 

     "summary": **$api_name** 

    } 
} 

Я открыт вместо альтернативных вариантов вместо сценариев shell/bash. Причина, по которой я пытаюсь сделать это с помощью оболочки, заключается в том, что я использую Jenkins.

ответ

0

вход вы описываете на самом деле не в формате CSV, но предполагая, что входной, как вы показали, и находится в файле с именем input.txt, следующие контуры один подход можно принять (с использованием Баш):

while read project api_name api_result etc 
do 
    if [ "$api_result" = "FAIL" ] ; then 
     echo curl ... $'\'{"fields": { "summary": "' "$2" $'" }}\'' 
    fi 
done < <(cat input.txt) 

Это предполагает, что проект и api_name отображаются в качестве первых двух токенов на входной строке. Если это не так, то вам может потребоваться сначала изменить файл input.txt так, чтобы он был в формате TSV (с разделителями разделов).

+0

Спасибо, что сработал. Однако теперь я столкнулся с следующей ситуацией. – Jeel

Смежные вопросы