O tamanho da variável Bash não é fixo. É muito provável manter quantidades arbitrárias de dados contanto que malloc possa encontrar memória suficiente e espaço de endereço contíguo. Vamos supor que você armazenou uma grande quantidade de dados em sua variável. Quando você tenta escrever dados para o seu arquivo, possivelmente você vai ter erro algo assim
/bin/echo ${LARGE_DATA} >> ${YourFile}
/bin/echo: Argument list too long
Esse erro está relacionado ao tamanho máximo do seu argumento de comando. Por favor, verifique a seção Limites no tamanho dos argumentos e ambiente , que Página man execve link
"... a memória usada para armazenar o ambiente e argumentos foram limitados a 32 páginas (definidas por o kernel constante MAX_ARG_PAGES). Em arquiteturas com 4 kB tamanho da página, isso produz um tamanho máximo de 128 kB ... "
EDITAR:
Por favor note também que o erro acima para / bin / echo é apenas um exemplo, é possível obter um erro similar, quando você tenta de outras maneiras enquanto escreve um arquivo. É sobre o tamanho do argumento.
SUGESTÃO:
Se pensarmos em escrever operações de arquivo atomicamente, cada canal de tempo é gerado para gravação, os descritores de arquivo são abertos e fechados.Ela leva algum tempo.Em vez de usar / bin / echo ou outros, você pode escrever seu próprio "WriteFile "programa com linguagem de alto nível como C / C ++. O que você precisa é de redirecionamento de E / S.
- Abrir descritor de arquivo
- Escrever dados
- Fechar descritor de arquivo
- Otimize seu código
-
Concluído
Por favor, verifique as chamadas do sistema como ssize_t write (int fd, const void * buf, size_t count);