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視頻教程
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦