Buscamos por todo el mundo online para así darte la respuesta a tu dilema, en caso de alguna duda déjanos tu pregunta y te respondemos sin falta, porque estamos para ayudarte.
Solución:
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 una terminal abierta en este retorno 131072
cual 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
Al final de la página puedes encontrar las explicaciones de otros administradores, tú además puedes dejar el tuyo si te gusta.