shell-script-pt
[Top][All Lists]
Advanced

[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/


reply via email to

[Prev in Thread] Current Thread [Next in Thread]