[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
emulando o comando seq
From: |
aurelio |
Subject: |
emulando o comando seq |
Date: |
Mon, 9 Dec 2002 09:20:37 -0300 (ART) |
ae pessoal,
esses dias eu estava brincando no shell e acabou saindo uma coisinha
legal.
tem o comando seq, que é bom pra usar em FORs
$ seq 3
1
2
3
$ for i in `seq 3`; do echo $i ; done
1
2
3
mas alguns sistemas não têm o seq. o legal é que dá pra emular o
seq apenas com os builtins do bash, ou com sh+expr, em funções de
apenas duas linhas! (o yahoo vai quebrar, mas é só duas linhas
de conteúdo cada)
BASH:
sek(){
local o=+ a=1 z=${1:-1}; [ "$2" ] && { a=$1; z=$2; } ; [ $a -gt $z ]
&& o=-
while [ $a -ne $z ]; do echo $a ; eval "a=\$((a$o 1))"; done; echo $a
}
SH:
sek(){
o=+ a=1 z=${1:-1}; [ "$2" ] && { a=$1; z=$2; } ; [ $a -gt $z ] && o=-
while [ $a -ne $z ]; do echo $a ; a=`expr $a $o 1`; done; echo $a
}
Exemplos:
$ sek 3
1
2
3
$ sek 8 4
8
7
6
5
4
basicamente a função recebe o número (ou os números) e compara,
se o final é maior que o inicial, será crescente (soma), senão
será decrescente (subtração). o inicial padrão é 1.
=====
--
aurelio
_______________________________________________________________________
Busca Yahoo!
O melhor lugar para encontrar tudo o que você procura na Internet
http://br.busca.yahoo.com/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- emulando o comando seq,
aurelio <=