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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] explode() em shell?!?!


From: Flavio Junior
Subject: Re: [shell-script] explode() em shell?!?!
Date: Sat, 22 Jul 2006 01:40:57 -0300

Voce não pode usar o export ?

X=nada
export X
.
.
.
teste() {
 echo $X
}


Flávio do Carmo Junior aka blk1d

On 7/21/06, Jorge Pereira <address@hidden> wrote:
cara,

eu sei muito simples como fazer isto, sem esse tanto de comando.

echo "meu:nome:e:jorge" | awk -F ":"  '{print $1}'

saca? so que eu preciso que a função faça isto, e não utilizando
comandos...e preciso devido
ao sistema ser modulorizado, e dai precisamos ter portabilidade entre
sistemas unix (solaris,aix e linux).

Eu precisaria apenas saber como recuperar uma variavel "setada" por uma
função, so isto.

obrigado pela força

On 7/21/06, Flavio Junior <address@hidden> wrote:
>
> Nao sei se to entendendo, mas voce quer passar 3 argumentos
> 1o. Vetor
> 2o. Separador
> 3o. Arquivo/linha
>
> Por exemplo a linha:
> linha="nada:interessante:por:aqui:hoje"
> Ai voce faz: _explode vet ":" linha
> $ echo $vet[0]
> nada
> $ echo $vet[4]
> hoje
>
> ??
>
> isso é facil usando o while read ou o cut ou tr ou sed ou awk ....
> man ..
>
>
> Flavio do Carmo Junior aka blk1d
>
>
> On 7/21/06, Jorge Pereira <address@hidden> wrote:
> > precisa falar? a propria função ta bem explicita.
> > sendo mais direto, eu preciso algo como.
> >
> > #!/bin/bash
> > # Script 1
> > source lib.script.sh
> > _explode  "nome"  ":"  /etc/passwd
> >
> > echo ${nome[3]}
> > exit 0
> > #
> >
> > e no caso a função _explode deve ser algo como.
> > #!/bin/bash
> >  function _explode(){
> >      local n=0
> >     _arrayName="${1}"
> >     _token="${2}"
> >     _arg="${3}"
> >
> >      [ -f "${_arg}" ] && _buffer="$(cat ${_arg})" || _buffer="${_arg}"
> >
> >      echo "${_buffer}" | tr "${_token}" " " | for _strtmp in $(cat
> > /dev/stdin);
> >      do {
> >          eval "${_arrayName}[${n}]="${_strtmp}""
> >          let n=n+1
> >      } done
> >   }
> >
> > # sacou?
> > queria que o script que invocou pode-se recuperar o valor de eval na
> função,
> > tipo
> > tornando os valores do array "globais".
> >
> > []s
> >
> >
> > On 7/21/06, Fabricio Lopes de Souza <address@hidden> wrote:
> > >
> > > vc podia falar oq q uma função explode faz :D
> > >
> > >
> > > On 7/18/06, Jorge Pereira <address@hidden> wrote:
> > > >
> > > > Pessoal,
> > > >
> > > > Estou precisando fazer algumas funções padrões em shell, e a unica
> que
> > > > esta
> > > > me dando dor de cabeça e a
> > > > logica da função explode, so que está implementação precisa receber
> como
> > > > parametro o nomer do array desejado.
> > > > segue o codigo.
> > > >
> > > > ---------------
> > > > # @func:   _explode()
> > > > # @Return: Array
> > > > # @Args:   argv[1]="token", argv[2]="arrayname", argv[3]="String"
> > > > # @Desc:   Make array of token in string (argv[3])
> > > > # @Author: Jorge Pereira
> > > > function _explode(){
> > > >     local n=0
> > > >     _arrayName="${1}"
> > > >     _token="${2}"
> > > >     _buffer="${3}"
> > > >
> > > >     for _strtmp in $(echo "${_buffer}" | tr "${_token}" " ")
> > > >     do {
> > > >         eval "${_arrayName}[${n}]="${_strtmp}""
> > > >         let n=n+1
> > > >     } done
> > > > }
> > > > ---------------
> > > >
> > > > Pra no caso utilizar ela no scripts, exemplo.
> > > >
> > > > ---------------
> > > > #!/bin/bash
> > > > .......
> > > > .......
> > > > mystr=":I:ride:bmx:"
> > > > _explode "bmx" ":" ${mystr}
> > > > echo ${bmx[2]}
> > > > echo ${bmx[4]}
> > > > ........
> > > > exit 0
> > > > ---------------
> > > >
> > > >
> > > > Alguem teria alguma sugestão?!?!
> > > >
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> >
> >
> > --
>
> > Regards,
> > +
> >
> 
---------------------------------------------------------------------------------+
> > Jorge Pereira, From: Olinda/Pe/Brazil
> > Home:  http://www.jorgepereira.com.br/
> > E-mail:  address@hidden, address@hidden
> > Mobile: +55 (81) 8833-2484
> > My Public Key: http://www.jorgepereira.com.br/public.pgp
> > +
> >
> 
---------------------------------------------------------------------------------+
> >     "Se você ama alguma coisa, liberte-a;
> >    Se ela não voltar a ti, cace-a e mate-a."
> >
> 
+----------------------------------------------------------------------------------+
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ---------------------------------------------------------------------
> > Esta lista não admite a abordagem de outras liguagens de programação,
> como perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
> > ---------------------------------------------------------------------
> > Sair da lista: address@hidden
> > ---------------------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> > ---------------------------------------------------------------------
> > Servidor Newsgroup da lista: news.gmane.org
> > Grupo: gmane.org.user-groups.programming.shell.brazil
> >
> >
> > Links do Yahoo! Grupos
>
> >
> >
> >
> >
> >
> >
> >
> >
> >
>
>



--
Regards,
+
---------------------------------------------------------------------------------+
Jorge Pereira, From: Olinda/Pe/Brazil
Home:  http://www.jorgepereira.com.br/
E-mail:  address@hidden, address@hidden
Mobile: +55 (81) 8833-2484
My Public Key: http://www.jorgepereira.com.br/public.pgp
+
---------------------------------------------------------------------------------+
    "Se você ama alguma coisa, liberte-a;
   Se ela não voltar a ti, cace-a e mate-a."
+----------------------------------------------------------------------------------+


[As partes desta mensagem que não continham texto foram removidas]



---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil


Links do Yahoo! Grupos










reply via email to

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