Why this number? It is a classic computing limit: (the maximum value of a signed 16-bit integer).
Date: Draft Topic: Shell limits & buffer overflows in crosh longest command in crosh
But a "command" implies execution. So the official winner for executable command remains . The "Null Byte" Caveat If you try to inject a null byte ( \0 ) into Crosh via printf or binary piping, the command will truncate immediately. Crosh treats null as string termination, just like C. Practical Takeaway Unless you are trying to break the shell on purpose, you will never hit this limit. The average Crosh command ( ping , ssh , top , network_diag ) uses fewer than 200 characters. Why this number
However, if you use a that doesn't require forking, the limit changes. So the official winner for executable command remains
# Generate a 32,767-character argument printf 'A%.0s' 1..32767 | xargs -0 echo Note: The above command requires xargs , which may not be available in stock Crosh. You have been warned. Did I miss a longer command? Do you know a hidden built-in that bypasses the limit? Let me know in the comments.
bash: /bin/echo: Argument list too long The echo command is a built-in in many shells, but in Crosh's restricted environment, echo often forks to /bin/echo . That hits ARG_MAX .