如何在Bash脚本中转义字符串

3

我正在运行一个调用mysql的bash脚本。密码未正确传输,我猜想我需要转义一些特殊字符,比如哈希或美元符号?

#!/bin/bash
USER=myuser PASS="#mypass$"
# ... 调用mysql

注意:为了安全起见,密码应该使用变量,并在脚本中使用变量名。
2个回答

2

使用"..."已经是正确的做法了,但是如果$后面不跟一个"无效"字符,则需要对其进行转义(\$)。然而,您还需要确保始终将变量放在引号中,例如:

somecommand -p "$PASS"

使用“…”已经是正确的做法了。 我有点困惑。在bash中,“#…”是一个特殊序列吗? - Gerry

1

尝试在需要转义的字符前使用“\”。

#!/bin/bash

USER=myuser
PASS="#mypass\$"

# ... call mysql

2
@mit:你也可以改成单引号,这样就可以防止内容的扩展。PASS='#mypass$' 注意在命令行中传递密码可能存在安全隐患。 - Dennis Williamson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接