Em bash 3.0+ (assim como em zsh e ksh93), {1..40}
expandirá para os números de 1-40 (inclusive). Em um shell POSIX como o dash (que é típico de /bin/sh
no Ubuntu, por exemplo), ele não funcionará (chamamos esse problema de "bashism").
Em sistemas com os utilitários GNU, você pode usar seq
para realizar isto:
for i in $(seq 1 40)
do
echo $i
done
Para ser mais portátil, você terá que incrementar manualmente $i
em um loop while
:
i=1
while [ $i -le 40 ]
do
echo $i
i=$((i+1))
done
Esta versão portátil também é um pouco mais rápida, pois não possui o comando externo.