用于调用curl的Shell / bash脚本

时间:2015-11-27 20:23:08

标签: bash shell api rest csv

如果我遇到CSV文件中的字段失败,我需要调用Rest api调用:

我有一个CSV文件,如下所示:

项目 api_name api_result 回复

xyz PASS 200,日期:星期一,2015年11月16日20:52:26

b abc FAIL 501,日期:星期一,2015年11月17日20:52:26

c mas PASS 200,日期:星期一,2015年11月18日20:52:26

我需要一个shellbash脚本来执行以下操作

1)每次api_result中都有失败时调用卷曲。

2)将值从CSV传递给我的curl命令。示例我需要在CSV中将 api_name 的值作为摘要传递给我的数据,如下所示:

请求:

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

数据

{
    "fields": {

       "summary": **$api_name**

   }
}

我也对备用选项开放,而不是shell / bash脚本。我试图用shell做这个的原因是因为我正在使用Jenkins。

1 个答案:

答案 0 :(得分:0)

您描述的输入实际上不是CSV格式,但假设输入与您显示的一样,并且位于名为input.txt的文件中,以下概述了您可以采用的一种方法(使用bash):

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(制表符分隔值)格式。