Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell MAKEFILE获取文件列表并加入_Shell_Unix_Terminal_Makefile - Fatal编程技术网

Shell MAKEFILE获取文件列表并加入

Shell MAKEFILE获取文件列表并加入,shell,unix,terminal,makefile,Shell,Unix,Terminal,Makefile,我试图收集一个特定类型的文件列表,并将它们连接到一个文件中,然后将它们放在我的应用程序的某个区域中,这就是它的外观 FILETYPE_DIRECTORY = /mydirectory FILETYPE_SRCFILES = $(find $(FILETYPE_DIRECTORY)/ -type f -and -name '*.ft') filetype-collected: $(FILETYPE_SRCFILES) mkdir $(FILETYPE_DIRECTORY)/filety

我试图收集一个特定类型的文件列表,并将它们连接到一个文件中,然后将它们放在我的应用程序的某个区域中,这就是它的外观

FILETYPE_DIRECTORY = /mydirectory
FILETYPE_SRCFILES = $(find $(FILETYPE_DIRECTORY)/ -type f -and -name '*.ft')

filetype-collected: $(FILETYPE_SRCFILES)
     mkdir $(FILETYPE_DIRECTORY)/filetype-collected;
     cat $(FILETYPE_SRCFILES) > compressed.ft;
     mv compressed.ft $(FILETYPE_DIRECTORY)/filetype-collected;
我得到的答复是

mkdir /mydirectory/filetype-collected;
cat  > compressed.ft;
并且应用程序没有继续(没有加入任何文件类型),问题是什么-O也尝试了替换

cat $(FILETYPE_SRCFILES) 


很抱歉,如果这真的是基本的,我是一个新的文件,可能不会工作。尝试:

FILETYPE_SRCFILES = $(shell find $(FILETYPE_DIRECTORY)/ -type f -and -name '*.ft')
而不是为
FILETYPE\u SRCFILES
提供的。你也可以写这封信,这封信对我来说似乎更清晰,只需少走一步:

$(FILETYPE_DIRECTORY)/filetype-collected/compressed.ft : $(FILETYPE_SRCFILES)
        mkdir $(dir $@)
        cat $^ > $@

echo$(FILETYPE\SRCFILES)
添加到操作中会得到什么?在每个操作之前都有选项卡,是吗?(这里没有。)对于OP:当从
$(shell…
函数赋值时,应该使用
:=
,而不是
=
。前者的效率要高得多(每次使用变量时使用后者,整个shell命令将从头开始重新运行)。为了安全起见,我会使用
mkdir-p
,而不是
mkdir
$(FILETYPE_DIRECTORY)/filetype-collected/compressed.ft : $(FILETYPE_SRCFILES)
        mkdir $(dir $@)
        cat $^ > $@