に渡すことができるコマンドラインの長さはどれくらいsh -c ''
ですか? (bash および bourne シェル)
この制限は、OS からの制限よりもはるかに低くなっています (最新の Linux の場合)。
例えば:
$ /bin/true $(seq 1 100000)
$ /bin/sh -c "/bin/true $(seq 1 100000)"
bash: /bin/sh: Argument list too long
そして、どうすればこの問題を回避できますか?
アップデート
ここでは役に立たないことに注意してgetconf
ください (これはシステムの制限ではないため)。
$ seq 1 100000 | wc -c
588895
$ getconf ARG_MAX
2097152
アップデート #2
ここでポイントが何であるかを理解しました。これはシェルの制限ではなく、システムの制限ですが、引数リスト全体ではなく、各引数の長さに対するものです。
$ /bin/true $(seq 1 100000)
$ /bin/true "$(seq 1 100000)"
bash: /bin/true: Argument list too long
CodeGnome さん、説明ありがとうございます。