当我运行脚本时 ARG_MAX 是什么意思?

当我运行脚本时 ARG_MAX 是什么意思?

到现在为止我知道了什么ARG_MAX意思(感谢艾德·莫顿):

ls foo bar

命令为ls,它有三个参数:foo和。它一共有 7 个字符,所以这里的bar的参数为。ls7

现在假设这是我的脚本:

#!/usr/bin/bash

while read -r do_something
do
    if [ "$do_something" == "some_string" ]
    then
        echo "do_something $do_something equals to some_string."
    fi
done < some_file

/usr/bin/python3 generate_numbers.py

names="$(awk '{print $4}' another_file.txt)"

awk 'BEGIN { for (i = 1; i <= 5; ++i) print i }'

if [ "$(stat -c %s mail.txt)" -g '0' ]
then
    echo -e "These are mailing list:\n\n$(cat mail.txt)" | mail -s "Mails List - $(date '+%Y-%m-%d %H:%M')"

现在有了上面的示例,当我运行bash /home/file或时/home/file,参数计数是什么?

  • wc -c file那是459(不包括事物本身)吗?
  • 这是针对每个命令的吗?例如whilehas 166/usr/bin/python3has20等等。

我认为这是第二个假设,因为第一个假设不合逻辑,因为我看到一些巨大的 bash(或任何其他)脚本,它们比2097152我的服务器中的还多(这个数字是getconf ARG_MAX.

相关内容