簡體   English   中英

Bash腳本,不能替代命令行變量

[英]Bash scripting, cannot substitute a command line variable

這是一個小的命令行腳本,用於在http服務器中發布json正文。 我發現很難將第一個命令行參數$ 1傳遞給json主體。

#!/bin/bash
curl  -X POST -d '{  "game": 16, "id": $(($1)) }' http://localhost:10000/

該命令不會失敗,但是http正文完全包含

{“游戲”:16,“ id”:$(($ 1))}

我想運行腳本./script 123並發送json正文

{  "game": 16, "id": 3 }

如何使用bash做到這一點?

您還可以使用單引號,這樣就不必轉義雙引號:

#!/bin/bash
curl  -X POST -d '{  "game": 16, "id": '$1' }' http://localhost:10000/

使用單引號將打印文字字符。 您需要對字符串內插使用雙引號。 嘗試:

curl  -X POST -d "{  \"game\": 16, \"id\": $1 }" http://localhost:10000/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM