2016-11-08 12 views
0

У меня есть GroupMe бота, который может отправлять сообщения в чат он назначается в следующем формате:Как создать .bash_profile псевдоним для команды ообщение 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; } 

Может кто-нибудь сообщить мне, что правильное форматирование было бы получить эту работу? Благодаря!

Update 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 

Я надеюсь, что это помогает прояснить этот вопрос, если произошло какое-то недоразумение.

ответ

1

Теперь, я надеюсь, что это будет для вас решение:

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

Вы должны использовать ' ' вокруг $v ->'$v' потому, что это позволит Баш оценить $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 ?" 
+0

Здравствуйте. Спасибо, что ответили. Когда я запускаю программу, я получаю: {"meta": {"code": 400, "errors": ["Invalid bot_id"]}, "response": null} ~ –

+0

Однако curl -d '{"text ":" Test "," bot_id ":" (REDACTED) "} https://api.groupme.com/v3/bots/post работает, когда я печатаю его в командной строке, поэтому я не знаю, в чем проблема является. –

+0

Я обновил свой вопрос, чтобы уточнить его, если это поможет. Новейшее решение по-прежнему не работает, и появляется такое же сообщение об ошибке. –