컬 명령 옵션이 포함된 bash 파일에 사용자 정의 변수 전달

컬 명령 옵션이 포함된 bash 파일에 사용자 정의 변수 전달

curlBash 파일에서 작업 명령(옵션 포함)을 제공합니다.

#!/bin/bash

curl 'https://digi.kansalliskirjasto.fi/rest/binding-search/search/binding?offset=0&count=10000' \
-H 'Accept: application/json, text/plain, */*' \
-H 'Cache-Control: no-cache' \
-H 'Connection: keep-alive' \
-H 'Content-Type: application/json' \
-H 'Pragma: no-cache' \
--data-raw '{   "authors":[],
                "collections":[],
                "districts":[],
                "endDate":null,
                "formats":["JOURNAL","PRINTING","NEWSPAPER"],
                "fuzzy":false,
                "hasIllustrations":false,
                "importStartDate":null,
                "importTime":"ANY",
                "includeUnauthorizedResults":false,
                "languages":[],
                "orderBy":"RELEVANCE",
                "pages":"",
                "publicationPlaces":[],
                "publications":[],
                "publishers":[],
                "query":"freedom", 
                "queryTargetsMetadata":false,
                "queryTargetsOcrText":true,
                "requireAllKeywords":true,
                "searchForBindings":false,
                "showLastPage":false,
                "startDate":null,
                "tags":[]
            }' \
--compressed \
--output my_file.json

다음 맞춤 매개변수를 전달하고 싶습니다.

myQUERY="freedom"
myFORMATS='["JOURNAL","PRINTING","NEWSPAPER"]'
myFUZZY="false"

, 및 에 대한 변수 --data-raw로 옵션이 있습니다 . 나는 몇 가지 대안을 시도했습니다."query""formats""fuzzy"

"formats":$myFORMATS, "query":$myQUERY, "fuzzy":$myFUZZY,

또는

"formats":${myFORMATS}, "query":${myQUERY}, "fuzzy":${myFUZZY}

또는

"formats":"${myFORMATS}", "query":"${myQUERY}", "fuzzy":"${myFUZZY}"

이들 중 어느 것도 초기 bash 코드에서 요구하는 결과를 반환하지 않습니다!

사용자 정의 변수를 명령 옵션으로 조작하는 가장 쉬운 방법은 무엇입니까?

건배,

답변1

이렇게 쉘을 이용해서여기 - 문서:

myquery="freedom"
myformats='["JOURNAL","PRINTING","NEWSPAPER"]'
myfuzzy="false"

curl 'https://digi.kansalliskirjasto.fi/rest/binding-search/search/binding?offset=0&count=10000' \
-H 'Accept: application/json, text/plain, */*' \
-H 'Cache-Control: no-cache' \
-H 'Connection: keep-alive' \
-H 'Content-Type: application/json' \
-H 'Pragma: no-cache' \
--compressed \
--output my_file.json \
-d @- <<EOF
{   "authors":[],
    "collections":[],
    "districts":[],
    "endDate":null,
    "formats":$myformats,
    "fuzzy":$myfuzzy,
    "hasIllustrations":false,
    "importStartDate":null,
    "importTime":"ANY",
    "includeUnauthorizedResults":false,
    "languages":[],
    "orderBy":"RELEVANCE",
    "pages":"",
    "publicationPlaces":[],
    "publications":[],
    "publishers":[],
    "query":"$myquery", 
    "queryTargetsMetadata":false,
    "queryTargetsOcrText":true,
    "requireAllKeywords":true,
    "searchForBindings":false,
    "showLastPage":false,
    "startDate":null,
    "tags":[]
} 
EOF

관련 정보