[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] explode() em shell?!?!
From: |
Jorge Pereira |
Subject: |
Re: [shell-script] explode() em shell?!?! |
Date: |
Sat, 22 Jul 2006 18:28:26 -0300 |
ao contario seria, a função vai ter que colocar um valor que eu fora dela
irei precisar acessar, entende? ja joguei o export e nao rolou.
alguem tem alguma opnião?
On 7/22/06, Flavio Junior <address@hidden> wrote:
>
> 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
> >
> >
> >
> >
> >
> >
> >
> >
>
>
--
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]
- explode() em shell?!?!, Jorge Pereira, 2006/07/18
- Re: [shell-script] explode() em shell?!?!, Fabricio Lopes de Souza, 2006/07/21
- Re: [shell-script] explode() em shell?!?!, Jorge Pereira, 2006/07/21
- Re: [shell-script] explode() em shell?!?!, Flavio Junior, 2006/07/21
- Re: [shell-script] explode() em shell?!?!, Jorge Pereira, 2006/07/21
- Re: [shell-script] explode() em shell?!?!, Flavio Junior, 2006/07/22
- Re: [shell-script] explode() em shell?!?!,
Jorge Pereira <=
- Re: [shell-script] explode() em shell?!?!, Felipe Kellermann, 2006/07/22
- Re: [shell-script] explode() em shell?!?!, Jorge Pereira, 2006/07/23
- Re: [shell-script] explode() em shell?!?!, Felipe Kellermann, 2006/07/23
- Re: [MODERAÇÃO]: [shell-script] explode() em shell?!?!, MrBiTs, 2006/07/23
- Re: explode() em shell?!?!, ferlemes, 2006/07/24
- Re: [shell-script] Re: explode() em shell?!?!, Tiago Barcellos Peczenyj, 2006/07/24
- Re: [shell-script] Re: explode() em shell?!?!, Reinaldo Carvalho, 2006/07/24
- Re: [shell-script] Re: explode() em shell?!?!, Tiago Barcellos Peczenyj, 2006/07/24
- Re: [shell-script] Re: explode() em shell?!?!, Fernando Zank, 2006/07/24
- Re: [shell-script] Re: explode() em shell?!?!, Fernando Lemes da Silva, 2006/07/24