在做一些工作时,我遇到了这个
$ echo [Login]
g
$ echo [kilo]
k
$ echo [gauke]
e g k
$ echo [quasi-star]
k m q
Run Code Online (Sandbox Code Playgroud)
导致此输出的后台发生了什么?echo [quasi-star]
刚刚丢失的输出是介意给出甚至不在那里的信件。
注意:是的,我知道我可以得到我的输出echo "[Login]"
如果没有引号,shell 正在对字符类进行路径名(glob)扩展[]
,因此大概您在当前目录中有名为e
, g
, k
, m
,q
的文件 - 因此结果。
echo
基本上只是打印路径名扩展的结果,仅此而已。
让我们举一个例子echo [quasi-star]
:
扩展 for 的结果[quasi-star]
将是来自quasijklmnopqrstar
(有意保留重复项)的任何单个字符。从 shell 的角度来看,因为没有周围的字符,所以它只会匹配扩展中当前目录上的任何单个字符文件名。
归档时间: |
|
查看次数: |
70 次 |
最近记录: |