【发布时间】:2013-05-11 02:52:43
【问题描述】:
我想将内容转储到一个列表中,但我现在不知道如何解决这个问题。
当我尝试显示列表中的所有元素时,shell 显示:
参数列表太长
在 Makefile 中:
$(FILE_SOURCE:%= echo % >> $(FILE_LIST_TMP);)
消息:
execvp: /bin/sh: Argument list too long
有没有其他方法可以在不重新编译内核的情况下解决这个问题?
如果有任何建议,我将不胜感激。谢谢
现在我使用 perl 来解决这个问题。以下是我的方法:
while read line; do
perl -e 'print "$$ARGV[0]\n"' $$line >> $(FILE_LIST_TMP) ; \
done < $(FILE_SOURCE)`
【问题讨论】:
-
你这里的两个例子完全不同。在第一个中,
FILE_SOURCE似乎是一个包含一长串文件的 make 变量,而在第二个中,FILE_SOURCE似乎是一个包含一长串文件的文件名的 make 变量.你的情况如何?如果您展示如何定义FILE_SOURCE,我们可以提供更多帮助。 -
请注意,对于第二个示例,您只需运行
cp $(FILE_SOURCE) $(FILE_LIST_TMP),这会简单得多,速度也快得多。
标签: linux shell unix makefile command-line-arguments