2 votos

¿Hay alguna forma de evitar el "Error: Línea de comandos demasiado larga"?

Estoy utilizando un software de línea de comandos para el que necesito introducir muchos argumentos. Algo así como

./exec -A argA -B argB -C argC ...

Hay tantos argumentos que me aparece el mensaje de error

Error: Command line too long (302110 >= 130592)

Una solución sería modificar el software para que lea los argumentos desde un archivo. Sin embargo, no tengo acceso al código fuente.

¿Hay alguna forma de evitar este problema?


Para su información, estoy en Mac OS X 10.11.3 y utilizar Terminal 2.6.1 (361.1)

0 votos

getconf ARG_MAX -los caracteres máximos permitidos por el kernel.

0 votos

Interesantemente getconf ARG_MAX devuelve 262144 que es casi el doble que 130592 (pero sigue siendo inferior a 302110 ).

3voto

siva Puntos 23

Ponga los argumentos en un archivo como -A argA -B argB -C argC … (excluyendo el binario), y luego ejecutar:

cat /path/to/file | xargs ./exec

0 votos

Muchas gracias por su respuesta. Tuve algunos problemas mientras investigaba la aplicación de su solución a mi problema específico (a pesar de que suena súper simple) y por eso pregunté esta pregunta donde la primera respuesta parece decir que cat /path/to/file | xargs ./exec no puede ser una solución de todos modos.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X