【问题标题】:Limits of length for the expansion of * in Bash? [duplicate]在 Bash 中扩展 * 的长度限制? [复制]
【发布时间】:2011-09-21 14:51:06
【问题描述】:

在 Bash 中

echo *

几乎等同于ls

你可以做类似的事情

echo */*-out/*.html > all-my-html-files-on-one-line

由于* 是一个命令行参数,所以应该有长度限制。

这个限制是多少?

echo Bash 命令和/bin/echo 程序的限制是否不同?

【问题讨论】:

    标签: bash command-line command-line-arguments


    【解决方案1】:

    我相信命令行限制是您可以看到的 ARG_MAX 的值

    getconf ARG_MAX
    

    这不是 bash 变量,这表明 bash 中的 echo/bin/echo 的限制相同。

    【讨论】:

    • echo 不执行任何外部命令,因此不受 ARG_MAX 影响。试试/bin/echo $(seq $(getconf ARG_MAX)) 会失败,但echo $(seq $(getconf ARG_MAX)) 可能会成功。
    【解决方案2】:

    shell不限制这个

    您可以使用(在我的 64 位 linux 上运行:)查看系统的限制

    $ getconf ARG_MAX
    2097152
    

    请参阅此信息非常丰富的页面http://www.in-ulm.de/~mascheck/various/argmax/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      • 2011-09-28
      • 1970-01-01
      • 2012-10-18
      • 1970-01-01
      相关资源
      最近更新 更多