echo *,无法找出它的作用

echo *,无法找出它的作用

我有一本书说命令的输出echo *是下面的行。我找不到它为什么输出这个。请帮忙。

$ echo *
local.cshrc local.login local.profile

答案1

*是 shell 特殊字符(全局匹配),匹配当前目录中的文件和目录的名称。

$ ls *

这将列出当前目录中的所有文件和目录。因此,在您的情况下,“*”返回,“echo”将它们打印在控制台上。尝试这样做来确认:

$ x=*
$ echo $x 

答案2

您正在使用一个通配符-与和 一起*使用。globbingfile-expansion

上面引用的链接进一步描述了这一点:

各种命令行实用程序使用标准通配符(也称为通配模式)来处理多个文件。有关标准通配符(通配符模式)的更多信息,请通过键入以下内容参阅手册页:

*(星号)这可以代表任意数量的字符(包括零个,换句话说,零个或多个字符)。如果您指定“cd*”,它将使用“cda”、“cdrom”、“cdrecord”以及以“cd”开头的任何内容,也包括“cd”本身。 “m*l”可以是 mill、mull、ml 以及任何以 m 开头并以 l 结尾的内容。

相关内容