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.
man
page of the application you're using, check that there's a possibility to send the password differently, or otherwise switch to another application. – Slumpapt-get
applications need the username and passwords in/etc/apt/apt.conf
files. Others take it from the environment variables specified in/etc/environment
or in/home/$USER/.bashrc
. Though not a part of this question, I would readily accept other known, secure ways of doing this. – Recommendatory@
to be escaped in this context), but about whatever program is using thehttp_proxy
variable. If HTML encoding is the only way to get it to accept a literal@
, that's what you'll have to do. – Septuple