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: