Shell 外壳:印刷“&引用;在带有echo的文件中

Shell 外壳:印刷“&引用;在带有echo的文件中,shell,Shell,我想添加以下行: %optflags "-O2" 在文件a.txt中使用shell。 当我写作时: { echo "%optflags "-O2"" } >> a.txt 它打印: %optflags -O2 我如何才能做到这一点?避开双引号: echo "%optflags \"-O2\"" echo '%optflags "-O2"' 或 使用单引号: echo "%optflags \"-O2\"" echo '%optflags "-O2"' 注意:如

我想添加以下行:

%optflags "-O2"
在文件a.txt中使用shell。 当我写作时:

{ echo "%optflags "-O2""
    } >> a.txt
它打印:

 %optflags -O2

我如何才能做到这一点?

避开双引号:

echo "%optflags \"-O2\""
echo '%optflags "-O2"'

使用单引号:

echo "%optflags \"-O2\""
echo '%optflags "-O2"'
注意:如果您在
bash-x
中检查原始代码,您可以部分地看到它发生了什么:

$ echo "%optflags "-O2""
+ echo '%optflags -O2'

它将一个参数传递给
echo
。。为什么?好的,它将
“%optflags”
-O2
(空字符串)连接到一个参数。

将双引号转义:

echo "%optflags \"-O2\""
echo '%optflags "-O2"'

使用单引号:

echo "%optflags \"-O2\""
echo '%optflags "-O2"'
注意:如果您在
bash-x
中检查原始代码,您可以部分地看到它发生了什么:

$ echo "%optflags "-O2""
+ echo '%optflags -O2'
它将一个参数传递给
echo
。。为什么?好的,它将
“%optflags”
-O2
(空字符串)连接到一个参数