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
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"
Using "..." is already the correct thing to do I'm confused. Is "# ..." a special sequence in bash?Try to use "\" before the character that you are trying to escape.
#!/bin/bash
USER=myuser
PASS="#mypass\$"
# ... call mysql
PASS='#mypass$' Beware the security implications of passing passwords on the command line.