Điểm:0

Tập lệnh bash cURL POST thêm dấu ngoặc đơn vào biến có dấu cách

lá cờ us

3 biến đầu tiên sẽ luôn không có khoảng trắng. Thứ tư "tên trang web chùng" có khoảng trắng

ip=âx.x.x.x"
record_name=âdemo.xyz"
Slacuri:âWEBOOK"
slacksitename:â123 Main St"

Khi được gọi với cURL

curl -X POST -H 'Content-type: application/json' --data '{"text":"â$slacksitename': '$ip' '$record_name' DDNS đã cập nhật.â}â $slackuri

Đầu ra như sau:

curl -X POST -H 'Content-type: application/json' --data '{"text":"123' Main 'St: x.x.x.x demo.xyz DDNS đã cập nhật."}' https://hooks.slack.com /services/â¦â¦..
curl: (6) Không thể giải quyết máy chủ: Chính
curl: (3) dấu ngoặc nhọn/ngoặc đóng chưa từng có ở vị trí URL 59:
St: x.x.x.x demo.xyz DDNS đã cập nhật."

Có ai biết tại sao nó thêm dấu nháy đơn vào 123' Main' St? Và làm cách nào tôi có thể xử lý toàn bộ biến đó thành một chuỗi thay vì chia tách nó (đó là điều tôi nghĩ nó đang làm)?

Cảm ơn

CẬP NHẬT: Đã giải quyết ^^

Theo sát:

Điều này có thể rơi cùng dòng với câu hỏi ban đầu:

Tôi có một biến là đầu ra JSON mà tôi muốn gửi qua cURL. Tôi cho rằng vấn đề lại là trích dẫn nhưng đầu ra JSON có thể thay đổi (Số lượng trích dẫn). Có cách nào gửi dữ liệu thô này bằng cURL trong tin nhắn có dòng mới không? Cảm ơn

KẾT QUẢ ĐÁNH GIÁ:\n{"result":{"id":"ppbkbz2ezmxen11vvpi65chsro1vki5y","zone_id":"unuM0sR1gSrQ37r9fGC1sYKFZOP0DzJM","zone_name":"demo.xyz","name":"1.demo.xyz"," gõ":"A","content":"x.x.x.x","có thể ủy quyền":true,"được ủy quyền":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"},"success":true,"errors":[],"messages":[]}."
Điểm:1
lá cờ gu

Bạn đang sử dụng các biến không được trích dẫn trong bash và có vẻ ngạc nhiên khi việc tách từ xảy ra. Đây là những gì phải xảy ra.

Bạn cũng có các trích dẫn không chuẩn trong câu hỏi của mình mà tôi cho rằng là do định dạng tự động. Nhưng lưu ý rằng " không giống như â' không giống như ʼ.

curl -X POST -H 'Content-type: application/json' --data '{"text":"â$slacksitename': '$ip' '$record_name' DDNS đã cập nhật.â}â $slackuri

Trong dòng lệnh của bạn, bạn đang trích dẫn {"chữ":" và nối thêm nội dung không được trích dẫn của $slacksitename với nó, có nghĩa là quá trình tách từ sẽ diễn ra trên đó. Kết quả cuối cùng sẽ là 3 đối số riêng biệt: {"văn bản":"123, Chủ yếu, đường phố. Đối số thứ ba sẽ được nối với : bản thân nó sẽ được nối với nội dung của phần không được trích dẫn $ip vì vậy chúng ta có bất kỳ khoảng trống nào trong biến đó, điều tương tự cũng sẽ xảy ra.

Đây thực chất là bash 101, hãy trích dẫn các biến của bạn trừ khi bạn biết mình đang làm gì.

northport avatar
lá cờ us
Cảm ơn vi đa trả lơi. `â` và `ʼ` là do nhầm lẫn và không thực sự có trong kịch bản. Tôi hơi lạc lõng về cách giải quyết vấn đề này. Tôi hiểu những gì bạn đang nói khi các biến không được trích dẫn gây ra sự cố. Nhưng tôi không chắc một biến được trích dẫn chính xác sẽ trông như thế nào. Xin lỗi để được như một noob. Bạn có thể chỉ cho tôi cách trích dẫn chính xác biến hoặc chỉ cho tôi một hướng chung không? Tôi đã đọc [luồng] ngăn xếp tràn này (https://stackoverflow.com/questions/10067266/when-nên-i-wrap-quotes-around-a-shell-variable) và tôi vẫn còn hơi lạc lõng. Cảm ơn.
Ginnungagap avatar
lá cờ gu
Nếu bạn không hiểu bash, vui lòng tham khảo [hướng dẫn sử dụng](https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html) của nó, đặc biệt khi bạn có ý tưởng như những gì bạn đang tìm kiếm.
Ginnungagap avatar
lá cờ gu
Ngoài ra, câu hỏi mà bạn chỉ ra thực sự có các ví dụ. Vì vậy, những gì bạn đã cố gắng mà không làm việc?
northport avatar
lá cờ us
Cảm ơn. Các hướng dẫn đã giúp. Bất kỳ suy nghĩ về cập nhật của tôi ^^?
Điểm:0
lá cờ es

Cách duy nhất mà tôi có thể tìm thấy là lưu json vào một tệp và sau đó tham chiếu nó trong lệnh gọi curl -d "@"

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.