Search code examples
bashproxyat-sign

How to escape the '@' symbol in bash?


I am trying to add my proxy with authentication parameters in bash, where my password contains an @ symbol. The syntax to add proxy with authentication in bash is as follows:

export http_proxy=http://username:password@host:port_no/

Therefore, whenever I try to add a password with @ in it, the applications that use this proxy try to connect to the string followed by the @ symbol in the password.

For example, if my password is p@ssword, and the host is proxy.college.com, the applications try to connect to [email protected].

I have tried escaping the @ symbol using \, but this does has not solved. How do I make this work without changing my password?

Note: This question is not similar to How can i escape an arbitrary string for use as a command line argument in bash nor How to escape the at sign in bash since this specifically treats the '@' sign that comes up in commands where there is an @ symbol already present and the @ is used to delimit the given string into specific paramters.

P.S.: Though using the HTML code %40 for @ works, I would prefer a more readable method.


Solution

  • You can use %40 instead of an @ sign.