Se você puder usar seq , poderá fazer isso:
read -p "Please Enter the first number : " n1
echo "$n1"
read -p "Please Enter the second number, larger than the first : " n2
echo "$n2"
seq "$n1" "$n2"
Se você tem que fazer isso inteiramente no shell e pode usar um shell moderno como bash , ksh , zsh etc (mas não ash ou dash ou similar estritamente POSIX shell), você poderia substitua o comando seq por:
eval "printf '%s\n' {$n1..$n2}"
Você precisa usar eval para a segunda versão porque as sequências do bash / ksh / etc esperam inteiros reais como {1..5} , não variáveis como {$n1..$n2} . eval expande as variáveis para que seus valores reais sejam usados dentro da sequência {...} .
se você quiser fazer isso com um loop e sem recursos extravagantes de bash / ksh / etc, você pode substituir as linhas seq ou eval por algo como:
c="$n1"
while [ "$c" -le "$n2" ] ; do
echo "$c"
c=$((c+1))
done
Isso funciona em qualquer shell compatível com POSIX, incluindo dash e ash , bem como bash etc.