gpt4 book ai didi

zsh 转义反斜杠

转载 作者:行者123 更新时间:2023-12-03 20:37:44 45 4
gpt4 key购买 nike

不久前我已经注意到,在 zsh 中,您可以像在 bash 中一样通过键入\\来获得\。

> echo \\
\

但是,在 zsh 中有 4 个反冲的奇怪现象。
bash$ echo \\\\
\\

zsh> echo \\\\
\

你知道为什么吗 ?这是一个错误吗?

最佳答案

不,这不是错误。只是这些shell中的echo实现
有不同的默认设置来解释反斜杠序列。

在任一 shell 中,命令行解析器将删除一层反斜杠
将 4 个反斜杠转换为 2。然后将该参数传递给 echo内置命令。当 echo 解释反斜杠序列 1 反斜杠是
该序列的输出,如果反斜杠解释不是由 echo 完成的
将输出 2 个反斜杠。

echo 的任一 shell 实现中-e-E可以使用选项
分别启用或禁用反斜杠解释。所以以下
将在任一 shell 中产生相同的输出:

echo -e \\\\
echo -E \\\\

两个 shell 也有 shell 级选项来改变默认行为
他们的 echo 命令。在 zsh 中,可以使用 setopt BSD_echo 更改默认值,
要更改 bash 中的默认值,命令是 shopt -s xpg_echo .

如果您正在尝试编写可移植的 shell 脚本,那么最好由
完全避免使用回声;它是最不便携的命令之一
大约。使用 printf反而。

关于zsh 转义反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16430628/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com