如何在Bash中转义单引号和双引号



我有一个脚本,它将文本作为参数并对其进行编码。如果文本只包含单引号,我就用双引号把它括起来,反之亦然,但如果它同时包含两个引号,就会变得很棘手,因为它在第一次出现时将被关闭。

script "I can't use "test" text"
// Double quote will be terminated at "I can't use "

那么我如何在不使用反斜杠的情况下转义这两种情况,就像在Python中使用三重单引号或双引号一样。

script '''I can't use "test" text'''
// or
script """I can't use "test" text"""

使用here-document,并使用命令替换将其转换为参数。

script "$(cat <<'EOF'
I can't use "test" text
EOF)"

最新更新