/usr/bin/printf
util 参数列表长度限制为 shell 的最大命令行长度(即, getconf ARG_MAX
在我的系统上为2097152);例子:
# try using a list that's way too long
/usr/bin/printf '%s\n' $(seq $(( $(getconf ARG_MAX) * 2 ))) | tail -1
输出:
bash: /usr/bin/printf: Argument list too long
今天我被告知shell builtin printf
没有这个限制。测试:
printf '%s\n' $(seq $(( $(getconf ARG_MAX) * 2 ))) | tail -1
输出:
4194304
问题:
略读
man bash dash
一下似乎并没有说明builtinprintf
的这种优势。它记录在哪里?builtin
printf
s ( eg )是否bash
有一个以字符为单位的参数列表最大长度,如果有,该长度是多少?