我在K& R2的练习中偶然发现了这一点。为什么echo *
会打印当前目录中所有文件的名称?更一般地,当我编写一个接受命令行参数的C程序时,当我将它*
作为参数时,它将其父目录中的所有文件的名称放入参数vector < / strong>即可。为什么会这样? *
有什么特别之处?
我在互联网上找不到任何相关内容。
答案 0 :(得分:1)
这称为 globbing 。 Here's a detailed description。其他通配符包括?
代表一个字符,[abc]
代表一组字符,[a-z]
代表一系列字符。它内置于各种shell中,包括Bash。
回应你的评论&#34;我认为echo是用C&#34; - 这没什么关系。一旦源代码被编译成包含机器代码的可执行文件,那么编写它的语言并不重要。