How to escape strings in bash script

2019-07-04 07:14发布

问题:

I am running a bash script that calls mysql. The password ist not correctly transmitted, I guess I have to escape some special chars, like the hash or the dollar sign?

#!/bin/bash

USER=myuser
PASS="#mypass$"

# ... call mysql

回答1:

Using "..." is already the correct thing to do, but the $ needs to be escaped (\$) if it isn't followed by an "invalid" character. However you also need to make sure to always have the variable in quotation marks as well, as in:

somecommand -p "$PASS"


回答2:

Try to use "\" before the character that you are trying to escape.

#!/bin/bash

USER=myuser
PASS="#mypass\$"

# ... call mysql