如何在Linux上逃避单引号

时间:2018-05-25 00:52:06

标签: linux bash

我需要导出一个像这样的密码

export PASSWORD='vfR"&aDA'GzV3(Yg'

但是当我使用反斜杠执行以下三种组合时,上面不起作用。

export PASSWORD='vfR"&aDA\'GzV3(Yg'
export PASSWORD='vfR\"&aDA\'GzV3(Yg'
export PASSWORD='vfR\"&aDA\'GzV3\(Yg'

2 个答案:

答案 0 :(得分:1)

尝试export PASSWORD="vfR\"&aDA'GzV3(Yg"我认为单引号可以阻止逃避斜线做你期望的事情。所以,试试双引号。您可以查看有关单引号和双引号here的问题的答案。

答案 1 :(得分:1)

在单引号中,逃脱不起作用;他们只是一个反斜杠的角色。单引号后具有特殊含义的事物是另一个单引号,并且始终标记单引号部分的结尾。因此,您无法在单引号字符串中嵌入单引号。

您有几种选择。您可以结束字符串的单引号部分并使用其他内容来保护单引号:

# Single-quoted string, escaped single-quote, then another single-quoted string:
export PASSWORD='vfR"&aDA'\''GzV3(Yg'
# Single-quoted string, double-quoted single-quote, then another single-quoted string:
export PASSWORD='vfR"&aDA'"'"'GzV3(Yg'

或者使用双引号字符串(然后在字符串中转义任何双引号,反斜杠,美元符号,反引号等):

export PASSWORD="vfR\"&aDA'GzV3(Yg"

或者你可以完全跳过引号,然后单独逃避一切:

export PASSWORD=vfR\"\&aDA\'GzV3\(Yg