gpt4 book ai didi

表达式 .[].[] 的 Bash 评估

转载 作者:行者123 更新时间:2023-11-29 08:50:34 24 4
gpt4 key购买 nike

考虑以下表达式求值:

$ echo .
.
$ echo .[]
.[]
$ echo .[].
.[].
$ echo .[].[]
.. # <- WAT??
$ echo .[].[].
.[].[].
$ echo .[].[].[]
.[].[].[]

有人可以解释为什么 .[].[] 有这种特殊行为吗?

(在 bash 3.2.57(1)-release (x86_64-apple-darwin18)4.4.23(1)-release (arm-unknown-linux-androideabi) 中测试

我怀疑它与 .. 是一个有效的"file"(父目录)有关。但是为什么不例如.[]. 产生相同的结果?

最佳答案

那是因为 [] 创建了一个字符类。通常,] 必须转义(反斜杠)才能包含在类中,但如果它紧跟在左括号之后,则不必转义它。因此,[].[] 实际上意味着 [\].[] 匹配任何字符 ., ][.

您可以通过创建名为 .].[.

的文件来验证它
touch .\[ .\]
echo .[].[] # .. .[ .]

关于表达式 .[].[] 的 Bash 评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56793024/

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