GNU/Linux >> Tutoriales Linux >  >> Linux

Límite de caracteres de la línea de comandos de Linux

Solución 1:

El límite impuesto por shell/SO suele ser de uno o doscientos mil caracteres.

getconf ARG_MAX le dará el límite máximo de entrada para un comando. En el sistema Debian, actualmente tengo un terminal abierto en este devuelve 131072 que es 128*1024 . El límite se reduce por las variables de entorno y, si mi memoria no me falla, el shell las pasa en la misma estructura, aunque eso solo eliminará unos pocos cientos de caracteres en la mayoría de los casos. Para encontrar una aproximación de este valor, ejecute env | wc -c - esto sugiere 325 caracteres en el momento actual en este inicio de sesión en esta máquina.

Es probable que los scripts permitan esta longitud completa, pero no es improbable que otras utilidades impongan sus propios límites, ya sea intencionalmente o por problemas de diseño. También puede haber límites artificiales sobre la duración de un argumento individual en una línea de comando larga y/o la duración de la ruta a un archivo.

Solución 2:

De hecho, ARG_MAX limita el tamaño total de la línea de comando y el entorno, pero se enfrenta a una limitación adicional:un argumento no debe ser más largo que MAX_ARG_STRLEN (que desafortunadamente está codificado para ser 131072).

Consulte https://unix.stackexchange.com/questions/120642/what-defines-the-maximum-size-for-a-command-single-argument

Solución 3:

¿Quiere decir cuál es la longitud variable más larga? Para averiguarlo, puede usar la "x" de perl para crear un nombre de variable muy largo:

 VAR=`perl -e 'print "a"x131071'` ; bash a.sh $VAR

En Mi sistema 131071 funciona:

y la variable se imprime en 131072 es demasiado grande:

VAR=`perl -e 'print "a"x131072'` ; bash a.sh $VAR
bash: /bin/bash: Argument list too long

Linux
  1. Cómo reiniciar Linux usando la línea de comandos

  2. comando linux mv

  3. Linux du comando

  4. 15 ejemplos para dominar la historia de la línea de comandos de Linux

  5. Cómo limitar los comandos de usuario en Linux

¿Cómo usar el proxy en la línea de comandos de Linux?

Cómo iniciar en la línea de comandos de Linux

Domina la línea de comandos de Linux

Conceptos básicos de la línea de comandos de Linux:sudo

Cómo encontrar la dirección IP en la línea de comandos de Linux

Comprobación de la ortografía en la línea de comandos de Linux