121 --- 175244-
Размер переменных Bash не фиксирован. Очень вероятно, удерживает произвольное количество данных, если malloc может найти достаточную память и непрерывный адрес. Большое большое количество данных в вашей переменной. Когда вы пытаетесь записать данные в свой файл, возможно, вы получите ошибку что-то вроде этого
/bin/echo ${LARGE_DATA} >> ${YourFile}
/bin/echo: Argument list too long
Эта ошибка, связанная с максимальной длиной вашего аргумента вашего команда. Пожалуйста, проверьте ограничения по размеру аргументов и окружающей среды раздел, который указан в Page Page Man Page http://man7.org/linux/man-pages/man2/execve.2.html
»... Память, используемая для хранения Строки среды и аргумента были ограничены 32 страницами (определены Констанция ядра Max_Arg_Pages). На архитектурах с 4 КБ Размер страницы, это дает максимальный размер 128 КБ ... «
Отредактируйте:
Пожалуйста, обратите внимание, что вышеуказанная ошибка для / bin / echo - это просто пример, можно получить аналогичную ошибку, когда вы пробуете другие способы записи файла. ,
Предложение:
Если мы думаем, что писать в файловые операции атомным образом, каждый временной труб генерируется для написания, дескрипторы файлов открываются и закрыты. Это требует некоторого времени. Внимание использования / bin / echo или другие Можно написать свою собственную программу «writefile» с языком более высокого уровня, такими как C / C ++. Что нужно для перенаправления ввода / вывода.
Сделано
Пожалуйста, проверьте системные звонки, как SSIZE_T Написать (int FD, const void * buf, size_t count);
Чтобы собрать две строки, разделенные новой строкой в переменной...
while read line1 && read line2
do
bothlines=$line1$'\n'$line2
do_something_with "$bothlines"
done < test.fa
(работает с ksh, bash, zsh)