2011-03-07 39 views
3

我正在運行一個調用mysql的bash腳本。密碼沒有正確傳輸,我想我必須逃避一些特殊的字符,如散列或美元符號?如何在bash腳本中轉義字符串

 
#!/bin/bash 

USER=myuser 
PASS="#mypass$" 

# ... call mysql 

回答

1

使用"..."已經是做了正確的事情,但要躲過$需求(\$)如果後面沒有「無效」字。但是,您還需要確保始終在引號中包含變量,如下所示:

somecommand -p "$PASS" 
+0

__'使用「...」已經是正確的事情了___ 我很困惑。是「#...」在bash中的特殊序列嗎? – Gerry 2015-05-26 06:30:00

2

嘗試在您嘗試轉義的字符之前使用「\」。

#!/bin/bash 

USER=myuser 
PASS="#mypass\$" 

# ... call mysql 
+1

@mit:您也可以更改爲單引號,以防止內容的擴展。 'PASS ='#mypass $''注意在命令行上傳遞密碼的安全含義。 – 2011-03-07 15:31:49