ヘッダー
この質問は本質的に理論的であるため、Unix Stack Exchangeの範囲内にあるかどうかはわかりません。私はこれを別のスタック交換に移すつもりです。
コンテキスト
Unixコマンドプロンプトでは、ユーザーは次のように入力できます。;
複数のコマンドを順次実行します。そのうちの1つが失敗しても、次のコマンドの実行は中断されません。
質問
ユーザーが1回のプロンプト実行で一緒に接続できるコマンドの数の理論的制限は何ですか;
?
ベストアンサー1
これ理論的量的制限注文するsh
行を占めるシェル(ここで想定)は次のとおりです。POSIX規格で定義:
入力ファイルはテキストファイルでなければなりません。ただし、行の長さは制限されません。。入力ファイルにゼロ個以上の空行とコメントのみが含まれている場合は、終了ステータスは
sh
0で終了する必要があります。
これは、シェルが許可できる必要があることを意味します。どの各個々のコマンドが十分に短く、次より長くない限り、1行のコマンドの数execve()
機能承認(パラメータと現在の環境の環境変数とその値を含む単一のコマンドの長さ、合計長はバイト未満でなければなりませんARG_MAX
)。
実際、これはシェルプロセスのメモリリソースの制限により制限されます。