如何为 GroupMe bot 的消息命令创建 .bash_profile 别名

How do I create a .bash_profile alias for a GroupMe bot's message command

我有一个 GroupMe 机器人,可以将消息发送到分配给它的聊天室,格式如下:

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

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

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

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

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

更新 1:

我现在的代码如下:

v="bot_id_string"
alias groupmessage=groupmessagefunction
groupmessagefunction() { curl -d '{"text" : '""', "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

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

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

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

您必须在 $v 周围使用 ' ' --> '$v' 因为这将允许 bash 在 curl -d ' ... ' 内计算 $v .

更新 1 的答案

据我所知,使用 eval 命令是更好的方法:

v="bot_id_string"
alias groupmessage=groupmessagefunction
groupmessagefunction() {
    a="curl -d '{\"text\" : \"\", \"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 ?"