3

请注意以下事项:

[user@machine deploy]$ echo ?
?
[user@machine deploy]$ echo ??
??
[user@machine deploy]$ echo ???
lib
[user@machine deploy]$ echo ????
????

怎么了echo ????为什么是“lib”?

我在我的 env 或 .bashrc 中没有看到任何内容,并且在机器之间不一致(在我的开发机器上,字符串 ??? 保持 ???,这在我测试它时很有用)。

我可以解决这个问题 - “???” 作为占位符值是完全任意的。但现在我很好奇。有人有想法么?

谢谢。

4

2 回答 2

7

在 shell glob中,?代表一个字符(确切地说 - 一个且只有一个)。因此,如果您有一个名称恰好包含三个字符的文件(或目录),???则会匹配它。

试试touch a; touch bb ; echo ? ??

如果您没有与该模式匹配的文件,则该模式将按原样打印,而不是替换。

于 2012-08-02T13:40:38.000 回答
1

提示 #1:尝试ls 提示 #2:这称为 globbing。

于 2012-08-02T13:40:48.557 回答