How to escape strings in bash script

10,011

Solution 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"

Solution 2

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

#!/bin/bash

USER=myuser
PASS="#mypass\$"

# ... call mysql
Share:
10,011
mit
Author by

mit

Updated on June 04, 2022

Comments

  • mit
    mit almost 2 years

    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