
Prefacio
No estoy seguro de si esta pregunta está dentro del alcance del intercambio de Unix Stack, ya que es de naturaleza teórica. Estoy dispuesto a trasladarlo a un intercambio de pila diferente.
Contexto
En el símbolo del sistema de Unix, un usuario puede escribir;
para ejecutar múltiples comandos en orden. Si uno falla, no detendrá la ejecución del siguiente comando.
Pregunta
¿Cuál es el límite teórico para la cantidad de comandos que un usuario puede encadenar en una ejecución rápida ;
?
Respuesta1
Elteóricolímite en el número decomandosque el shell (asumiendo sh
aquí) puede tomar en una sola línea esdefinido en el estándar POSIX:
El archivo de entrada será un archivo de texto,excepto que la longitud de las líneas será ilimitada. Si el archivo de entrada consta únicamente de cero o más líneas en blanco y comentarios,
sh
saldrá con un estado de salida cero.
Esto significa que el shell debería poder aceptarcualquiernúmero de comandos en una sola línea, siempre y cuando cada comando individual sea lo suficientemente corto como para no ser más largo que lo que elexecve()
funciónacepta (la longitud de un solo comando, con argumentos, y las variables de entorno del entorno actual y sus valores, en total, deben ser inferiores a ARG_MAX
bytes).
En la práctica, esto está restringido por los límites de recursos de memoria impuestos al proceso de shell.