【Shell系列】$(shell pwd)和$(pwd)用法区别

Date: 2019-5-8


1、参考

$(shell pwd)和$(pwd)有什么区别
shell 基础 $(cd `dirname $0`;pwd)
Linux常用命令简述–dirname与basename

2、$(shell pwd)和$(pwd)用法区别

$(shell pwd):执行pwd命令

$(pwd):表示当前所在目录

举个栗子:

$(shell cd $(shell pwd)/`dirname $(FILE)`/; pwd)
$(shell svn info | grep 'Revision')
3、makefile中使用shell函数

shell函数
shell函数也不像其它的函数。顾名思义,它的参数应该就是操作系统Shell的命令。它和反引号“`”是相同的功能。这就是说,shell函数把执行操作系统命令后的输出作为函数返回。于是,我们可以用操作系统命令以及字符串处理命令awk,sed等等命令来生成一个变量,如:
contents := $(shell cat foo)
files := $(shell echo *.c)
注意,这个函数会新生成一个Shell程序来执行命令,所以你要注意其运行性能,如果你的Makefile中有一些比较复杂的规则,并大量使用了这个函数,那么对于你的系统性能是有害的。特别是Makefile的隐晦的规则可能会让你的shell函数执行的次数比你想像的多得多。

4、shell中dirname与basename

1、dirname命令去除文件名中的非目录部分,删除最后一个“\”后面的路径,显示父目录。
语法:dirname [选项] 参数
2、basename命令用于打印目录或者文件的基本名称,显示最后的目录名或文件名。
语法:basename [选项] 参数


THE END!

在这里插入图片描述

你可能感兴趣的:(【Shell系列】$(shell pwd)和$(pwd)用法区别)