【问题标题】:How to escape strings in bash script如何在 bash 脚本中转义字符串
【发布时间】:2011-07-10 08:54:25
【问题描述】:

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

#!/bin/bash 用户=我的用户 PASS="#mypass$" # ... 调用 mysql

【问题讨论】:

    标签: string bash escaping


    【解决方案1】:

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

    somecommand -p "$PASS"
    

    【讨论】:

    • Using "..." is already the correct thing to do 我很困惑。 "# ..." 是 bash 中的特殊序列吗?
    【解决方案2】:

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

    #!/bin/bash
    
    USER=myuser
    PASS="#mypass\$"
    
    # ... call mysql
    

    【讨论】:

    • @mit:您也可以只更改为单引号,以防止内容扩展。 PASS='#mypass$' 注意在命令行上传递密码的安全隐患。
    猜你喜欢
    • 2019-06-27
    • 2019-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    相关资源
    最近更新 更多