如何转义 bash 数组元素中的引号 [duplicate]

How to escape quotes in bash array elements [duplicate]

提问人:pythonic12 提问时间:6/20/2019 最后编辑:Cyruspythonic12 更新时间:6/20/2019 访问量:1844

问:

我想创建一个这样的数组

array=(

"element1 with "quoted string""
"element2 without double quoted string"
"element3"
)

运行它输出的代码后

echo ${array[0]}                                                               
element1 with quoted.

我正在尝试将引号包含在回声输出中。我该怎么做?

数组 bash 转义 引号

评论

0赞 Gordon Davisson 6/20/2019
在使用变量 (/array) 引用时,还应该将其放在双引号两边,例如 而不仅仅是.这不会影响字符串值中的双引号,但可以避免其他一些 shell 元字符的麻烦。echo "${array[0]}"echo ${array[0]}

答:

2赞 chepner 6/20/2019 #1

要么使用单引号,

array=(
'element1 with "quoted string"'
...
)

或转义字面上的双引号:

array=(
"element1 with \"quoted string\""
...
)

您的第一个嵌套引号结束了开头引号,但仍被视为当前单词的一部分。数组的下一个元素在其末尾附加了一个空字符串。quotedstring