用cURL命令中的变量替换字符串

时间:2017-08-09 18:32:30

标签: linux shell curl automation groupme

我正在尝试尽可能简单地自动化GroupMe bot。从命令行发送消息的简单方法是使用以下命令:

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

在Shell脚本中,我想将"Your message here"替换为var,其中var被设置为来自不同命令的输出。这可能吗?

我已经取代的东西"你的消息在这里"那不起作用:

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

任何放在双引号内的东西("")都被视为一个字符串,因此在这些方面没有多少尝试。

1 个答案:

答案 0 :(得分:3)

var将不会被评估,因为它是单引号中的w /。解决这个问题的一种方法是将3个字符串拼凑在一起:

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

注意:这仅在var的内容非常简单时才有效。扩展字符串仍必须是有效的JSON字符串。