我有一个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如果出现误解,我希望这会有助于澄清这个问题。
发布于 2016-11-08 10:07:53
现在,我希望这将是你的解决办法:
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\" : \"$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 ?"https://stackoverflow.com/questions/40478911
复制相似问题