0

我有一个 GroupMe 机器人,它可以以这种格式向分配给它的聊天发送消息:

curl -d '{"text" : "text", "bot_id" : "(REDACTED)"}' https://api.groupme.com/v3/bots/post

因此,我决定为它创建一个别名,而不是每次我想发送消息时都输入这个怪物。

这是我尝试在我的 .bash_profile 中使用的内容:

alias groupmessage=groupmessagefunction
groupmessagefunction() { curl -d '{"text" : $1, "bot_id" : "(REDACTED)"}' https://api.groupme.com/v3/bots/post; }

谁能告诉我正确的格式是什么才能让它工作?谢谢!

更新1:

我现在的代码如下:

v="bot_id_string"
alias groupmessage=groupmessagefunction
groupmessagefunction() { curl -d '{"text" : '"$1"', "bot_id" : '"$v"'}' https://api.groupme.com/v3/bots/post; }

我想指出,我想要完成的是输入以下内容:

groupmessage "hello"

或者

groupmessage hello

然后,它将发出以下命令:

curl -d '{"text" : "hello", "bot_id" : "bot_id_string"}' https://api.groupme.com/v3/bots/post

如果发生任何误解,我希望这有助于澄清这个问题。

4

1 回答 1

1

现在,我希望这将是您的解决方案:

v=bot_id
curl -d '{"text" : "Test", "'$v'" : "(REDACTED)"}' api.groupme.com/v3/bots/post

您必须使用' 'around $v-->'$v'因为这将允许 bash 在$v内部进行评估curl -d ' ... '

回答您的更新 1

我认为这将是使用eval命令的更好方法:

v="bot_id_string"
alias groupmessage=groupmessagefunction
groupmessagefunction() {
    a="curl -d '{\"text\" : \"$1\", \"bot_id\" :  \"$v\"}' https://api.groupme.com/v3/bots/post"
    echo "$a"    # this echo just for checking
    eval "$a"; }

groupmessage "Hello is it working now ?"
于 2016-11-08T10:07:53.650 回答