curl ignore --data começando com sinal @: não leia do arquivo

0

No slack você pode fazer o script do slackbot para postar mensagens em um canal como este:

curl --data "$msg" $'https://<yourteam>.slack.com/services/hooks/slackbot?token=<yourtoken>&channel=#random'

Agora eu gostaria de mencionar um nome de usuário como a primeira parte da mensagem como msg="@joernhees hello self".

O problema com isso é que, se o --dataargumento de curl iniciar com um @sinal, ele interpretará a sequência após o @nome de arquivo as e publicará seu conteúdo. Existe uma maneira de fazer o curl ignorar o @sinal e enviar um literal @como o primeiro caractere de uma solicitação de postagem?

Jörn Hees
fonte

Respostas:

0

Na verdade eu acabei de descobrir que eu posso fazer isso (não tenho certeza se é a melhor opção):

curl --data '@-' $'https://<yourteam>.slack.com/services/hooks/slackbot?token=<yourtoken>&channel=#random' <<< "$msg"

O truque é dizer curl para ler a partir de stdin @-e depois passar a mensagem por meio disso.

Jörn Hees
fonte