$(declare -p) 不断添加反斜杠

$(declare -p) 不断添加反斜杠

help declare

-p        display the attributes and value of each NAME

只要运行就declare -p可以按预期工作。在子 shell 中运行它也是如此(declare -p)

然而,当使用 时echo "$(declare -p)",即在子 shell 中执行命令,再次捕获stdout并回显该命令stdout,我注意到发生了一些奇怪的事情:每次调用时, 的输出declare -p都会变得更长,并且会出现额外的反斜杠。执行时间也越来越长。

第一次运行的输出echo "$(declare -p)"

...
declare -x SHELL="/bin/bash"
...

第二次运行:

...
declare -x SHELL="/bin/bash"
...
declare -x SHELL=\"/bin/bash\"
...

第三次运行:

...
declare -x SHELL="/bin/bash"
...
declare -x SHELL=\"/bin/bash\"
...
declare -x SHELL=\\\"/bin/bash\\\"
...

这里发生了什么?

相关内容