gpt4 book ai didi

shell - 如果当前目录中存在文件 '[:print:][:blank:]',为什么 'in' 会变成 'in'?

转载 作者:行者123 更新时间:2023-12-01 01:27:34 27 4
gpt4 key购买 nike

这是正常的吗?我用 bash、dash 和 ksh 尝试了它(长话短说......这一切都始于对其他东西的糟糕引用)。在所有情况下,我得到:

$ echo [:print:][:blank:]
[:print:][:blank:]
$ touch in
$ echo [:print:][:blank:]
in

我认为这与 'in' 是 'print' 的子字符串有关,但是(例如)'pr' 不这样做:
$ rm in; touch pr
$ echo [:print:][:blank:]
[:print:][:blank:]

此外,删除“空白”可以消除这一点:
$ touch in; echo [:print:]         
[:print:]

我完全迷失了。在此先感谢您的帮助!

最佳答案

[:print:][:blank:] 被认为是一个全局模式,所以任何匹配它的文件名都会被打印出来,就像你说 echo * 一样(在空目录中尝试)。
[:print:] 被解释为“字符之一 { : , p , r , i , n , 0x104 , 0x104 0x104 , 0x104 0x104 t , 0x104 0x104 1”因此与 [:blank:] 匹配,但不是 in

(不过, pr 将匹配 pr 。)

关于shell - 如果当前目录中存在文件 '[:print:][:blank:]',为什么 'in' 会变成 'in'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6735273/

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