Переменная BSON Shell Curl JSON - PullRequest
0 голосов
/ 23 октября 2019

Я пытался выполнить вызов CURL из сценария оболочки и аргумента командной строки.

url=$1
pg=$2
coockie=$3

curl '$url' -H 'sec-fetch-mode: cors' -H 'origin: $url' -H 'accept-encoding: gzip, deflate, br' -H 'accept-language: en-GB,en-US;q=0.9,en;q=0.8' -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36' -H 'content-type: application/json;charset=UTF-8' -H 'accept: application/json, text/plain, */*' -H 'referer: $url' -H 'authority: recruiting.adp.com' -H '$cookie' -H 'sec-fetch-site: same-origin' --data-binary $'{"filters":[{"name":"country","label":"Country"},{"name":"state","label":"State"},{"name":"grp","label":"Job Type"},{"name":"ptitle","label":"Job"}],"results":{"pageTitle":"Search Results","zeroResultsMessage":"We\'re sorry but we have no job openings at this time that match your search criteria. Please try another search.","searchFailureMessage":"Oops\u0021 Something went wrong.  Search has encountered a problem. Try searching again","resultsFoundLabel":"results found","bookmarkText":"Bookmark This","pageSize":"100","sortOrder":"00001000","shareText":"Share","fields":[{"name":"ptitle","label":"Published Job Title"},{"name":"location","label":"Location"},{"name":"position","label":"Position"}]},"pagefilter":{"page": 3},"rl":"enUS"}' --compressed

echo "$ url $ pg"

Но "pagefilter": {"page": 3}, "rl": "enUS"} 'в этом скрипте атрибута страницыработает, когда это числовое значение, но я хочу, чтобы оно было похоже на "pagefilter": {"page": "$ page"}, "rl": "enUS"} '

Невозможно понять, почему это не работает,Пробовал избегать двойных кавычек тоже.

Ввод похож на /s.sh "URL" 3 1234

Ответы [ 2 ]

0 голосов
/ 25 октября 2019

Благодаря @jschnnasse Попробовал с помощью bash -x и обнаружил, что только '$ pg', принимающий значение "pg", "$ pg" и "$ pg" ", не работает, следующий код работает отлично.

url=$1
pg=$2
coockie=$3

curl '$url' -H 'sec-fetch-mode: cors' -H 'origin: $url' -H 'accept-encoding: gzip, deflate, br' -H 'accept-language: en-GB,en-US;q=0.9,en;q=0.8' -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36' -H 'content-type: application/json;charset=UTF-8' -H 'accept: application/json, text/plain, */*' -H 'referer: $url' -H 'authority: recruiting.adp.com' -H '$cookie' -H 'sec-fetch-site: same-origin' --data-binary $'{"filters":[{"name":"country","label":"Country"},{"name":"state","label":"State"},{"name":"grp","label":"Job Type"},{"name":"ptitle","label":"Job"}],"results":{"pageTitle":"Search Results","zeroResultsMessage":"We\'re sorry but we have no job openings at this time that match your search criteria. Please try another search.","searchFailureMessage":"Oops\u0021 Something went wrong.  Search has encountered a problem. Try searching again","resultsFoundLabel":"results found","bookmarkText":"Bookmark This","pageSize":"100","sortOrder":"00001000","shareText":"Share","fields":[{"name":"ptitle","label":"Published Job Title"},{"name":"location","label":"Location"},{"name":"position","label":"Position"}]},"pagefilter":{"page": '$pg'},"rl":"enUS"}' --compressed
0 голосов
/ 23 октября 2019

Оберните вашу переменную двойными / одинарными / двойными кавычками "'" поможет в большинстве случаев

page=3
curl -d'{"page":"'"$page"'"}' http://...

Это будет расширено до

curl -d'{"page":"3"}' http://...

Или используйте только одинарные / двойные qoutes '" для расширения до числа:

curl -d'{"page":'"$page"'}' http://...

Будет расширено до

curl '-d{"page":3}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...