De acordo com o grupo aberto o POSIX awk suporta BEGIN , portanto, isso pode ser feito em awk :
awk -v MYEND=6 'BEGIN { for(i=1;i<=MYEND;i++) print i }'
Onde -v MYEND=6 representaria a atribuição como no primeiro argumento para seq . Em outras palavras, isso também funciona:
END=6
for i in 'awk -v MYEND=$END 'BEGIN { for(i=1;i<=MYEND;i++) print i }''; do
echo $i
done
Ou mesmo com três variáveis (início, incremento e fim):
S=2
I=2
E=12
for i in 'awk -v MYS=$S -v MYI=$I -v MYE=$E 'BEGIN { for(i=MYS;i<=MYE;i+=MYI) print i }''; do
echo $i
done
Nota extra do Solaris : no Solaris /usr/bin/awk é não compatível com POSIX, você precisa usar nawk ou /usr/xpg4/bin/awk no Solaris.
No Solaris, você provavelmente desejará definir /usr/xpg4/bin antecipadamente no PATH se estiver executando um script compatível com POSIX.
Resposta de referência: