쉘(Shell)에서 POST시 json 데이터에 변수 넣기

2021. 5. 3. 00:25 기타/Shell script, bash

쉘에서 curl post할때 json형식의 데이터를 사용하는 방법

쉘에서 json형식의 데이터를 curl을 통해 POST로 요청할때가 있는데,
파라미터로 받은 값, 또는 변수의 값을 직접 사용하면 json의 형태로 만들기 어렵다.
아래 방식을 이용하면 슆게 json 데이터의 형태로 post요청을 할 수 있다.

 

코드

물론 아래에 POST $HOST -d json을 넣을 수 있지만, 아래 함수와 같이 함수화를 하지 않으면 에러가 난다.

 

#!/usr/bin/env bash
generate_post_data()
{
        cat <<EOF
{
        "app_id": 'nice'
        "date": "2017-12-15 00:00",
        "data" : {
                "key": {
                "name": "$1",
                "birth": "$2",
                "age": "3",
                "gender": $4
                }
        }
}
EOF
}

NAME=LEE
BIRTH=0413
AGE=29
GENDER=M

curl -XPOST $HOST -d "$(generate_post_data) $NAME $BIRTH $AGE $GENDER"

 

출처 : ourcstory.tistory.com/405?category=716432