2017-08-09 235 views
0

我試圖儘可能簡單地自動化GroupMe bot。一種簡單的方法通過命令行發送消息是使用下面的命令:使用cURL命令中的變量替換字符串

curl -d '{"text" : "Your message here", "bot_id" : "this_is_a_secret_string"}' https://api.groupme.com/v3/bots/post 

在shell腳本,我想與var取代"Your message here",其中var被設置爲輸出由不同的命令。這可能嗎?

事情我已經取代「在這裏你的消息」有沒有工作:

var 
$var 
(var) 
$(var) 
{var} 
${var} 

凡是把雙引號(「」)被視爲一個字符串內,所以沒有嘗試在這些方面多。

回答

2

var將不會被評估,因爲它帶有單引號。解決此問題的辦法是剛剛粉碎3串在一起:

curl -d '{"text" : "'"$var"'Your message here", "bot_id" : "this_is_a_secret_string"}' https://api.groupme.com/v3/bots/post 
  • 串1:'{"text" : "'
  • 串2:"$var"
  • 串3:'Your message here", "bot_id" : "this_is_a_secret_string"}'

注意:這隻會如果var的內容非常簡單的話。擴展字符串必須仍然是有效的JSON字符串。

+0

完美無缺地工作!沒有想到var需要雙引號,謝謝! –