tipoff
(usa Nenhuma)
Enviado em 28/04/2024 - 14:01h
aguamole escreveu:
aguamole escreveu:
Lembrando que a variável especial do shell "${@}" armazena no máximo 9 valores que vai de ${1} a ${9}.
Engano meu, testei aqui e o shell armazeno 30 variáveis especiais, ou seja 30 arquivos foram criados com nome de 1 a 30, agora estou imaginando que as variáveis especiais do shell são infinitas, portanto não tem limite de quantos parâmetros pode ser passado para "tfiles2", ou será que tem, alguém sabe? o limite é a capacidade do computador?
Comando do teste:
$ tfiles2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
A execução foi bem sucedida.
Não são infinitas, mas a princípio o limite é grande. Criei esse script abaixo (bash_paramaters_limit.sh) para testar:
#!/usr/bin/env bash
let i=0
echo Quantidade de argumentos: $#
for arg; do
echo Argumento \$\{$((i++))\}: $arg
done
O limite atingido aqui foi
75505:
./bash_paramaters_limit.sh $(seq 0 75504) | head -n1
Quantidade de argumentos: 75505
Se eu passo um a mais, ai retorna o erro:
./bash_paramaters_limit.sh $(seq 0 75505) | head -n1
zsh: argument list too long: ./bash_paramaters_limit.sh
Não sei se o limite é por conta do próprio interpretador ou por outro motivo, mas de qualquer forma ninguém cria utilitários para passar milhares de parâmetros neh