Linux
如何在 bash 腳本的 curl 命令中傳遞變數
我正在創建一個需要傳遞變數的 bash 腳本 $ matchteams & $ 匹配時間進入下面的 curl 命令
curl -X POST \ 'http://5.12.4.7:3000/send' \ --header 'Accept: */*' \ --header 'User-Agent: Thunder Client (https://www.thunderclient.com)' \ --header 'Content-Type: application/json' \ --data-raw '{ "token": "abcdjbdifusfus", "title": "$matchteams | $matchtime", "msg": "hello all", "channel": "1021890237204529235" }'
有人可以幫幫我嗎
單引號內的文本被視為文字:
--data-raw '{ "token": "abcdjbdifusfus", "title": "$matchteams | $matchtime", "msg": "hello all", "channel": "1021890237204529235" }'
(變數周圍的雙引號也被視為文字。)在這種情況下,您需要從單引號中取出,以便 shell 解析和擴展變數,或者將整個字元串括在雙引號中,轉義適當的文字雙引號:
# Swapping between single quote strings and double quote strings --data-raw '{ "token": "abcdjbdifusfus", "title": "'"$matchteams | $matchtime"'", "msg": "hello all", "channel": "1021890237204529235" }' # Enclosing the entire string in double quotes with escaping as necessary --data-raw "{ \"token\": \"abcdjbdifusfus\", \"title\": \"$matchteams | $matchtime\", \"msg\": \"hello all\", \"channel\": \"1021890237204529235\" }"
請記住,它
"abc"'def'
是由 shell 擴展的,abcdef
因此交換引用樣式的中間字元串是完全可以接受的。總的來說,我傾向於使用第一種風格。