为什么bash插入引号我没有要求?

sco*_*tes 6 bash shell

有人可以向我解释一下吗?

$ set -x
$ export X="--vendor Bleep\ Bloop"; echo $X
+ export 'X=--vendor Bleep\ Bloop'
+ X='--vendor Bleep\ Bloop'
+ echo --vendor 'Bleep\' Bloop
--vendor Bleep\ Bloop
$
Run Code Online (Sandbox Code Playgroud)

具体来说,为什么echo行插入'我没有要求的字符,为什么它会使字符串看起来没有终止?

Tod*_*obs 4

了解 Shell 扩展

Bash按设定的顺序执行shell 扩展。-x 标志允许您查看 Bash 在标记和扩展组成输入行的单词时所采取的步骤的中间结果。

换句话说,输出按设计运行。除非您尝试调试标记化、分词或扩展,否则中间结果对您来说并不重要。