i=0
while true; do
a[$i]=foo
i=$((i+1))
printf "\r%d " $i
done
Este script simples é exibido nos meus sistemas (Gnu / Linux e Solaris):
-
ksh88
limita o tamanho a2^12-1
(4095). (subscript out of range
). Alguns lançamentos mais antigos, como o do HP-UX, limitam o tamanho a1023
. -
ksh93
limita o tamanho de uma matriz a2^22-1
(4194303). Sua milhagem pode variar. -
bash
não procura impor nenhum limite codificado fora do limite determinado pelos recursos de memória subjacentes disponíveis. Por exemplo, o bash usa1.3 GB
da memória virtual para um tamanho de matriz de18074340
.
Nota: Eu desisti com mksh
, que foi muito lento executando o loop (mais de cem vezes mais lento que zsh
, ksh93
e bash
.)