Are shall variables limited in size? And which is the max size a variable can hold?
Yes they can be. It depends on your OS and/or the shell flavours and versions. It is safer to use temporary files if you expect variable values to exceed 1-4kB.
EDIT
Also see http://stackoverflow.com/questions/1078031/what-is-the-maximum-size-of-an-environment-variable-value; this deals with the OS limitation on total environ
size (cumulative size of all VARIABLE=VALUE
s) which affects export
ed variables, but the shell itself may have its own limitations re. all (including non-export
ed) variable sizes.
This being said, unless you have portability in mind, GNU bash
is relatively good about not limiting (non-export
ed) variables' sizes and can very likely hold arbitrary amounts of data as long as malloc
can find sufficient memory and contiguous address space. :)