我有一个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
如果发生任何误解,我希望这有助于澄清这个问题。
答案 0 :(得分:1)
现在,我希望这将是您的解决方案:
v=bot_id
curl -d '{"text" : "Test", "'$v'" : "(REDACTED)"}' api.groupme.com/v3/bots/post
您必须在' '
周围使用$v
- > '$v'
因为这样可以让bash评估$v
内的curl -d ' ... '
。
我认为这是使用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 ?"