Heredocs (thats, что <<<
назван) в ударе, всегда заканчиваются символом новой строки. Нет никакого способа отключить это поведение. Этот символ новой строки - то, что отбрасывает контрольную сумму.
На самом деле нет; пока память вашего компьютера может обрабатывать очередь, оболочка должна делать все возможное. Согласно POSIX :
Оболочка должна считывать свой ввод в виде строк из файла, из терминала в случае интерактивной оболочки или из строки в случае
sh -c
илиsystem ()
. Входные строки могут иметь неограниченную длину . Эти строки должны быть проанализированы в двух основных режимах: обычное распознавание токенов и обработка здесь-документов.
В основном все те || Объединенные вместе &&
составляют одну строку ввода для синтаксического анализатора оболочки, потому что он должен анализировать токены для каждого списка команд , прежде чем оценивать и выполнять простые команды, составляющие список.
Однажды я описал нечто подобное здесь - и там есть много примеров команд, подробно описывающих, как работает синтаксический анализатор (или, по крайней мере, насколько я понимаю, как он работает) .
Полагаю, что лимит, с которым вы столкнетесь, это не количество команд, а размер буфера команды sh. На современных Linux-системах я считаю, что размер составляет около 64K символов.
.