好吧,我浪费了一整天的时间在一个表现非常奇怪的剧本上。我发现了一些我无法解释的事情。

ny-02-ops:~$ rm -fr roles
ny-02-ops:~$ echo role[blerk]
role[blerk]
ny-02-ops:~$ echo role[sugar]
role[sugar]
ny-02-ops:~$ mkdir roles
ny-02-ops:~$ echo role[blerk]
role[blerk]

这是我的“wtf”时刻
ny-02-ops:~$ echo role[sugar]
roles
ny-02-ops:~$ mkdir roleb
ny-02-ops:~$ echo role[blerk]
roleb

我知道有一位大师可以解释这一点,我将非常感激知道发生了什么。

最佳答案

全局中的方括号与其中一个字符匹配。如果带有元字符(*[...]等)的glob不匹配任何文件名,则glob将原封不动地返回。

echo "role[sugar]"
echo "role[blerk]"

关于linux - 当目录存在与否时,bash shell给出奇怪的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43376431/

10-15 02:01