Shell函数



shell函数不同于其他功能除了;wildcard功能,可以用它来与外界交流。



*功能:功能shell实现功能是作为参考相同(` `)在壳体内,该命令的扩展实现。这意味着一个shell命令需要此功能的参数和函数的返回结果是在shell命令执行的结果,只有过程的返回结果;使收益函数所有的换行符(n)或双nr而不是单一的空间,并得到回车符号的结束(n)或nr。当函数进行扩展,它调用命令(参数)执行。除了其引文在命令行定义和递归变量,在大多数情况下,要完成功能壳阅读解析makefile时膨胀。



返回值:函数shell参数的执行结果(shell命令在shell环境)。



*功能显示函数本身的返回值是其参数执行的结果,没有经过任何处理。结果的处理是通过使。当一个函数的引用出现在规则的命令行,命令行的功能打开时生效。当功能参数扩展(shell命令)执行是壳过程中完成,因此需要多级出现在命令行的规则;shell函数引用需要小心处理,否则会影响各层次的效率(shell参数数目将有自己的壳的过程)。



例1:



内容:= $(shell猫富)



变contents作业文件的foo 内容;文件中的线是通过在变量空间取代。



例2:



文件:= $(shell回音*)



变files指定列表中的所有C文件的当前目录下(使用空间的分区之间的文件名)。壳在线的命令是回声*。C此命令返回所有的C文件列出当前目录中的实施和功能上面结果(通配符*。C);$ 的结果是一样的,除非你使用的是一种奇怪的壳。



注意:通过上面的两个例子中,我们可以看到,当参考定义,shell和函数的定义,功能扩展时可以使读入makefile。这个变量的后续引用将没有一个展开的过程。这就避免了发生在命令行变量引用时执行命令行,因为它扩大了shell功能需要另一个壳过程完成,并影响指令执行的效率。