2017-08-09 241 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需要双引号,谢谢! –