下面是一个错误的示例,用\"来转义内部双引号,会报错Unmatched ".,说双引号不匹配。
\"
Unmatched ".
echo "\"abc\""
那正确的应该怎么写呢?
一种方法是:外层双引号改单引号。
echo '"abc"'
但有一个明显的缺点,单引号内不支持变量替换。比如echo '"abc${def}"'只会原样输出。
echo '"abc${def}"'
为了做变量替换,可以分成几段输出,如下:
set def = "^_^" echo '"abc'${def}'"' # 输出:"abc^_^"
还有一种更方便的方法,双引号内部用\000八进制的数字来表示ascii码。这种方法即可以输出双引号,又可以做变量替换。下面是示例:
\000
set def = "^_^" echo "\042abc${def}\042" # 输出:"abc^_^"