The commandcurl http://localhost/ --data @hellowill try to read from file hello. How do I escape the @ symbol?
How do I post something using cURL that starts with `@`?
curl
Without trying to find out more about the internals of curl, I would suggest just piping into it:printf @hello | curl http://localhost/ --data @-As @ulrich-schwarz suggested in a comment, you could also use--data @<(echo @hello) if it's more convenient (not all shellssupport this syntax).Looking at the source code for curl-7.41.0, I don't see any way to escape a @ sign to prevent interpretation as a file name:if('@' == is_file) {  /* a '@' letter, it means that a file name or - (stdin) follows */  if(curlx_strequal(-, p)) {    file = stdin;    set_binmode(stdin);  }  else {    file = fopen(p, rb);    if(!file)      warnf(config,            Couldn't read data from file \%s\, this makes             an empty POST.\n, nextarg);  }  /* ... */}So, unfortunately, it looks like we are stuck with the piping solution above.