gpt4 book ai didi

linux - "Argument list too long"显示所有列表元素

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:23:53 25 4
gpt4 key购买 nike

我想将内容转储到列表中,但我现在不知道如何解决这个问题。

当我尝试显示列表中的所有元素时,shell 显示:

arguments list too long

在生成文件中:

$(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_LIST_TMP)。相反,只需使用一次,如下所示:

(${FILE_SOURCE:%=echo %;}) > $(FILE_LIST_TMP)

现在不再将其发送到 shell:

echo foo >> my_temp_file ; echo bar >> my_temp_file ; echo baz >> my_temp_file; ..

你会用到这个:

(echo foo; echo bar; echo baz;) > my_temp_file

这会明显更短,尤其是当文件数量变大时,尤其是当您的临时文件名很长时。

如果 FILE_SOURCE 中的文件都在具有公共(public)路径的子目录中,您可以玩的另一个技巧是 cd 然后您可以从中省略该路径echo 行。

但是,如果列表足够长,即使这样最终也可能不够。

关于linux - "Argument list too long"显示所有列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16583599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com