带括号的引文

带括号的引文

如何用括号括起来以防止 Bash 解释?我知道可以进行命令替换:

echo \"`echo "I will be in quote"`\"
echo \"$(echo "I will be in quote")\" # same meaning

尽管如此,我还是尝试使用反斜杠,但随着递归的增长,它变得难以阅读。

echo "\"I'm in quote\""
echo %("I'm in quote") # % is what I look for

答案1

如果只想显示双引号,可以使用单引号括住整个表达式:

echo '"I am quoted."'

然而,如果您还想回显单引号,这会变得很难使用。

要打印包含单引号和双引号的一行或一段文本,可以使用这里的文件,这样就完全避免了转义引号:

cat << EOT 
"I am quoted."
"I'm quoted as well."
EOT

你不必使用终止时间。任何其他词都可以。

答案2

我不太清楚你真正想要什么。以下是一些替代方案:

var="\"I'm in quotes\""
echo "$var"
var="I'm in quotes"
echo "\"$var\""
printf '"%s"\n' "I'm in quotes"
function echo_quoted () { printf '"%s"\n' "$*"; }
echo_quoted "I'm in quotes"

相关内容