前言

前言

前言

不確定這個問題是否在 Unix Stack 交換的範圍內,因為它本質上是理論問題。我願意將其移動到不同的堆疊交換。

情境

在 Unix 命令提示字元下,使用者可以鍵入;按順序執行多個命令。如果其中一個失敗,也不會停止下一個指令的執行。

問題

使用者在一次提示執行中可以連結在一起的命令數量的理論限制是多少;

答案1

理論的數量限制命令shell(假設sh這裡)可以佔用一行是POSIX 標準中定義:

輸入檔應為文字文件,除了線路長度不受限制。如果輸入檔案僅包含零個或多個空白行和註釋,sh則應以零退出狀態退出。

這意味著 shell 應該能夠接受任何單行上的命令數,只要每個單獨的命令夠短,不長於execve()功能接受(帶有參數的單一命令的長度以及當前環境的環境變數及其值的總和必須小於ARG_MAX位元組)。

實際上,這是受到 shell 進程的記憶體資源限制的限制。

相關內容