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):
-
ksh88limita o tamanho a2^12-1(4095). (subscript out of range). Alguns lançamentos mais antigos, como o do HP-UX, limitam o tamanho a1023. -
ksh93limita o tamanho de uma matriz a2^22-1(4194303). Sua milhagem pode variar. -
bashnão procura impor nenhum limite codificado fora do limite determinado pelos recursos de memória subjacentes disponíveis. Por exemplo, o bash usa1.3 GBda 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 .)