我浏览了Stack Overflow上的很多帖子以及关于这个argument list too long主题的一些相关社区,我似乎没有清楚地知道长度限制是否适用于shell内置函数.
假设我想通过标准输入将一个非常长的字符串传递给命令:
string="a very long list of words ..."
Run Code Online (Sandbox Code Playgroud)
我能说......么:
# not using double quotes around $string is deliberate
printf '%s\n' $string | cmd ...
Run Code Online (Sandbox Code Playgroud)
要么
cmd <<< $string
Run Code Online (Sandbox Code Playgroud)
甚至可以将它传递给xargs:
printf '%s\n' $string | xargs cmd ...
Run Code Online (Sandbox Code Playgroud)
有人可以澄清一下吗?