如何用括号括起来以防止 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"