【问题标题】:Replacing a string with a variable in a cURL command [duplicate]用 cURL 命令中的变量替换字符串 [重复]
【发布时间】:2023-03-30 18:33:01
【问题描述】:

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

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}

任何放在双引号 ("") 中的内容都被视为字符串,因此在这些方面没有做太多尝试。

【问题讨论】:

    标签: linux shell curl automation groupme


    【解决方案1】:

    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 字符串。

    【讨论】:

    • 完美运行!没想到 var 需要双引号,非常感谢!
    猜你喜欢
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2021-05-13
    • 2015-04-18
    • 2015-12-21
    • 1970-01-01
    • 2019-03-27
    相关资源
    最近更新 更多