Кажется, нет никаких ограничений, кроме тех, что установлены ОС:
$ yes=$(yes)
bash: xrealloc: cannot allocate 18446744071562067968 bytes (1617920 bytes allocated)
О, ваш метод неправильный используйте mktemp
, например:
x="$(mktemp)"
grep mohsen /etc/passwd > $x
root@debian:/home/mohsen# echo $x
/tmp/tmp.yuMRWrJbRI
Затем в конце вашего скрипта вы можете удалить свой временный файл.
В этом методе вместо переменной вы используете файл.