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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> wrote:
> >
> > vc podia falar oq q uma função explode faz :D
> >
> >
> > On 7/18/06, Jorge Pereira <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED], [EMAIL PROTECTED]
> 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: [EMAIL PROTECTED]
> ---------------------------------------------------------------------
> 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
>
>
>
>
>
>
>
>
>
---------------------------------------------------------------------
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: [EMAIL PROTECTED]
---------------------------------------------------------------------
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
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html