linux有判断文件是否存在的函数;该函数为makefile的wildcard函数。wildcard函数可以匹配文件列表,若不存在符合指定模式的文件,函数会返回空,语法为“$(wildcard PATTERN…)”。
本教程操作环境:linux7.3系统、Dell G3电脑。
linux有判断文件存在的函数吗
linux有判断文件存在的函数
使用makefile的wildcard函数
ifneq ($(wildcard FILE,) #文件存在 endif
$(wildcard FILE)的意思是当前路径下的FILE文件匹配的文件展开。
假设当前路径下存在a.c 和 b.c,那么执行src=$(wildcard *.c),src的值就为a.c b.c;
如果不使用通配符,比如src=$(wildcard c.c);那么就是要展开当前路径下,文件名为c.c的文件,因为当前路径下文件不存在,因此src为空字符串。
示例如下:
分别使用上述两种方法判断obj文件夹下depend.mk文件是否存在,存在的话创建a.c和b.c文件。
编写的makefile如下:
OBJ_DIR=obj fileNames = $(wildcard $(OBJ_DIR)/depend.mk) all: @echo "this is all " @echo ${fileNames} @if [ -e $(OBJ_DIR)/depend.mk ]; then touch b.c; fi ifneq ($(wildcard $(OBJ_DIR)/depend.mk),) touch a.c endif
执行完后,成功创建了a.c和b.c。
推荐学习:Linux视频教程