Olah,

Reinaldo Carvalho wrote:
> Eu acho que ele quis perguntar, quantos bytes eu posso por em uma
> variável do bash. (considerando que não foi configurado nenhum limite
> de alocação de memória do security/limits.conf)
> 
> tipo assim..
> a=a
> i=0
> while true ; do a=$a$a ; let i++ ; echo \$a contem $i bytes ; done
> 
> até onde isso vai? hehehe


Acredito q esse limite seja a memoria do sistema. Veja alguns testes:

[begnini 0 coke tmp]$ echo $BASH_VERSION
3.00.16(1)-release
[begnini 0 coke tmp]$ ls -lh file
-rw-r--r--  1 begnini begnini 50M 2006-02-02 12:01 file
[begnini 0 coke tmp]$ a=`cat file`
[begnini 0 coke tmp]$ echo -n "$a" > file2    (varios minutos depois...)
[begnini 0 coke tmp]$ diff file file2
[begnini 0 coke tmp]$

Ou seja, consegui criar uma variavel com 50 MB de conteudo sem problema
algum, tirando o gasto de memoria, claro.


Com um arquivo um pouco maior...

[begnini 0 coke tmp]$ ls -lha t
-rw-r--r--  1 begnini begnini 119M 2006-02-02 12:19 t
[begnini 0 coke tmp]$ a=`cat t`  (alguns minutos depois...)
[begnini 0 coke tmp]$ ps aux | grep bash
bash: fork: Não foi possível alocar memória

Ae a maquina morre :)

Versoes antigas do BASH tinham limite no tamanho da variavel. Se nao me
engano BASH 2.0 tinha como limite 64 kb.

PS: algo interessante eh a alocacao de memoria do BASH. Mesmo depois de
ter dado um unset a ou a="", o BASH continuava gastando quase a mesma
quantidade de memoria. P/ liberar a memoria do sistema, apenas matando o
shell.


[]s
Humberto Pereira


---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a