Puncte:0

Scriptul cURL POST bash adaugă ghilimele simple la variabilele cu spații

drapel us

Primele 3 variabile nu vor avea întotdeauna spații. Al patrulea "slacksitename" are spații

ip=âx.x.x.x"
record_name=âdemo.xyz"
slackuri:âWEBHOOK"
slacksitename:â123 Main St"

Când este apelat cu cURL

curl -X POST -H „Content-type: application/json” --data „{"text":"â$slacksitename': '$ip' '$record_name' DDNS actualizat.â}â $slackuri

Ieșirea este după cum urmează:

curl -X POST -H „Content-type: application/json” --data „{"text":"123" Main "St: x.x.x.x demo.xyz DDNS updated."}" https://hooks.slack.com /servicii/â¦â¦...
curl: (6) Nu s-a putut rezolva gazda: Main
curl: (3) acoladă/paranteză apropiată nepotrivită în poziția URL 59:
St: x.x.x.x demo.xyz DDNS actualizat."

Ar ști cineva de ce adaugă ghilimele simple la 123' Main 'Sf? Și cum aș face ca asta să trateze întreaga variabilă ca un șir în loc să o despart (ceea ce cred că face)?

Mulțumiri

UPDATE: Rezolvat^^

Urmare:

Probabil că aceasta se încadrează în aceeași linie cu întrebarea inițială:

Am o variabilă care este o ieșire JSON pe care vreau să o trimit prin cURL. Presupun că problema sunt din nou ghilimele, dar rezultatul JSON se poate schimba (număr de ghilimele). Există vreo modalitate de a trimite aceste date brute cu cURL în mesajul cu o linie nouă? Mulțumiri

REZULTATE DUMPING:\n{"result":{"id":"ppbkbz2ezmxen11vvpi65chsro1vki5y","zone_id":"unuM0sR1gSrQ37r9fGC1sYKFZOP0DzJM","zone_name":"demoxy.z.","demoxy.z.","name. type":"A","conținut":"x.x.x.x","proxiable":true,"proxied":false,"ttl":1,"locked":false,"meta":{"auto_added":false, "managed_by_apps":false,"managed_by_argo_tunnel":false,"source":"primary"},"created_on":"2020-06-14T19:13:57.096688Z","modified_on":"2021-10-16T16:57 :49.269274Z"},"succes":true,"erori":[],"mesaje":[]}."
Puncte:1
drapel gu

Folosești variabile necotate în bash și arăți surprins că se întâmplă împărțirea cuvintelor. Asta ar trebui să se întâmple.

Aveți, de asemenea, ghilimele nestandard în întrebarea dvs., despre care presupun că sunt din cauza formatării automate. Dar rețineți că " nu este la fel ca â și ' nu este la fel ca ʼ.

curl -X POST -H „Content-type: application/json” --data „{"text":"â$slacksitename': '$ip' '$record_name' DDNS actualizat.â}â $slackuri

În linia ta de comandă, citezi {"text":" și anexând conținutul necotat al $slacksitename la el, ceea ce înseamnă că va avea loc împărțirea cuvintelor pe el. Rezultatul final va fi 3 argumente separate: {"text":"123, Principal, Sf. Al treilea argument va fi concatenat cu : care va fi ea însăși concatenat cu conținutul necotat $ip deci suntem orice spații prezente în acea variabilă, la fel s-ar întâmpla.

Acesta este în esență bash 101, citați-vă variabilele, dacă nu știți ce faceți.

northport avatar
drapel us
Multumesc pentru raspuns. `â` și `ʼ` au fost din greșeală și nu chiar în scenariu. Totuși, sunt puțin pierdut în ceea ce privește cum să rezolv asta. Înțeleg ceea ce spui în ceea ce privește variabilele necotate care cauzează probleme. Dar nu sunt sigur cum ar arăta o variabilă citată corect. Îmi pare rău că sunt așa de noob. Îmi puteți arăta cum să citez corect variabila sau să mă îndrept într-o direcție generală? Am citit această stivă overflow [thread](https://stackoverflow.com/questions/10067266/when-should-i-wrap-quotes-around-a-shell-variable) și încă sunt puțin pierdut. Mulțumiri.
Ginnungagap avatar
drapel gu
Dacă v-ați pierdut cu bash, nu ezitați să consultați [manualul](https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html), mai ales când aveți o idee ca la ceea ce cauți.
Ginnungagap avatar
drapel gu
În plus, întrebarea la care ați indicat are de fapt exemple. Deci ce ai încercat care nu a funcționat?
northport avatar
drapel us
Mulțumiri. Manualul a ajutat. Ai păreri despre actualizarea mea^^?
Puncte:0
drapel es

Singura modalitate pe care o pot găsi este să salvez json într-un fișier și apoi să îl referim în apelul curl -d „@”

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.