在 cURL 命令中用变量替换字符串
Replacing a string with a variable in a cURL command
我正在尝试尽可能简单地自动化 GroupMe 机器人。从命令行发送消息的一种简单方法是使用以下命令:
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
被设置为不同命令的输出。这可能吗?
我用 "Your message here" 替换的东西不起作用:
var
$var
(var)
$(var)
{var}
${var}
双引号 ("") 中的任何内容都被视为字符串,因此在这方面没有做太多尝试。
var
不会被计算,因为它是 w/in 单引号。解决这个问题的一种方法是将 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 字符串。
我正在尝试尽可能简单地自动化 GroupMe 机器人。从命令行发送消息的一种简单方法是使用以下命令:
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
被设置为不同命令的输出。这可能吗?
我用 "Your message here" 替换的东西不起作用:
var
$var
(var)
$(var)
{var}
${var}
双引号 ("") 中的任何内容都被视为字符串,因此在这方面没有做太多尝试。
var
不会被计算,因为它是 w/in 单引号。解决这个问题的一种方法是将 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 字符串。