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

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

Re: [shell-script] Manipulação de variavel do tipo lista, pegar de 2 em


From: Leandro Santiago
Subject: Re: [shell-script] Manipulação de variavel do tipo lista, pegar de 2 em 2
Date: Fri, 9 Jan 2009 14:55:57 -0200

Ou, se estiver num array, você pode fazer assim, no bash:

Uma solução em shell (bash) puro:

    array=( elem1 elem2 elem3 elem4 elem5 elem6 elem7 elem8 elem9)

    tamanho=${#array[@]}

    for (( i=0 ; i<tamanho; i+=2 ))
    do
            echo ${array[@]:$i:2}
    done

Saída:

elem1 elem2
elem3 elem4
elem5 elem6
elem7 elem8
elem9


2009/1/9 Julio C. Neves <address@hidden>

>   Renato,
> experimente as 2 formas abaixo. Repare a diferença de apresentação e depois
> faça sua escolha entre as 3:
>
> $ zenity --text-info --title Registros --filename <(echo $LISTA | xargs
> -n2)
> $ zenity --info --title Registros --text "$(echo $LISTA | xargs -n2)"
>
>
> --
> Abração,
> Julio
> *Cursos de Shell e Zenity nos finais de semana:
> - Em SP ligue (11) 2125-4747;
> - Em DF ligue (61) 3223-3000;
> - Turmas fechadas em outras cidades ligue (21) 8112-9988
> *
>
> 2009/1/9 Renato de Oliveira Diogo <address@hidden<renato.diogo%40gmail.com>
> >
>
> > Opa Senhores
> >
> > grato pela atenção e resposta de todos...
> >
> > testei as tres sugestões passadas, e tirei a seguinte conclusão.
> >
> > Devido a estrutura do digalog, eu não posso colocar um par por linha,
> > pois quebra a estrutura dele, então o tr ' ' '\n', não dá... a mesma
> > coisa usando o xargs.
> > Era o que eu procurava, mas descobri q num deu certo, rs.
> >
> > Já a solução do Flavio, funcionou legal... e ela ainda me possibilita
> > (outra coisa que eu não tinha colocado no primeiro post) é que eu
> > posso acrescentar texto junto às variáveis... como $1 "texto"$2.
> >
> > Então, a solução para o dialog meu ficou assim:
> >
> > REG=$(dialog --backtitle "TEXTO" \
> > --stdout --nocancel --ok-label 'Voltar' \
> > --menu "Registros" 0 0 10 \
> > $( set - ${LISTA[*]} ; for D in $@; do echo $1 $2; shift 2; done ) \
> >
> > Flavio, Raul e Julio, vlw pela ajuda
> >
> >
> > []s
> > ________________________________________________
> > Renato de Oliveira Diogo
> >
> > Bacharel em Ciência da Computação
> > UNESP - Bauru
> >
> > LPIC1 - Linux Professional Institute Certification - Nível 1
> >
> > address@hidden <renato.diogo%40gmail.com> <renato.diogo%
> 40gmail.com>
> > address@hidden <renato.diogo%40yahoo.com.br> <renato.diogo%
> 40yahoo.com.br>
> >
> > 2009/1/8 Julio C. Neves <address@hidden 
> > <julio.neves%40gmail.com><julio.neves%
> 40gmail.com>>:
> >
> > > Fala Renato,
> > > creio que a forma mais rápida de fazer isso é:
> > >
> > > echo a a b b c c d d | xargs -n2
> > >
> > > --
> > > Abração,
> > > Julio
> > > *Cursos de Shell e Zenity nos finais de semana:
> > > - Em SP ligue (11) 2125-4747;
> > > - Em DF ligue (61) 3223-3000;
> > > - Turmas fechadas em outras cidades ligue (21) 8112-9988*
> > >
> > > 2009/1/8 Renato de Oliveira Diogo 
> > > <address@hidden<renato.diogo%40gmail.com>
> <renato.diogo%40gmail.com>
> > >
> > >
> > >> Olá senhores
> > >>
> > >> preciso resolver a seguinte situação, tenho um script que gera na
> > >> saída padrão valores da seguinte forma: item1 val1 intem2 val2 intem3
> > >> val3 ...
> > >> aí eu pego e atribuo isso a uma variável var=($(sh script.sh))
> > >>
> > >> porem eu preciso pegar, sempre de 2 em 2 (ou seja, item1 val1) para
> > >> montar uma lista utilizando o dialog. Quando tenho que pegar um valor
> > >> por vez, com for fica facil, mas de 2 em 2 complicou...
> > >>
> > >> abaixo o que uso de 1 valor por vez
> > >>
> > >> dialog --title "" --stdout --menu "" 0 0 0 \
> > >> $( for D in ${LISTVAR[*]}; do echo $D 'texto'; done) ;
> > >>
> > >> a minha ideia é montar esse menu, dinamicamente onde no ficaria
> > >> Item1 valor1
> > >> item2 valor2
> > >> do dialog.
> > >>
> > >> alguem tem alguma ideia?
> > >>
> > >> []s
> > >> ________________________________________________
> > >> Renato de Oliveira Diogo
> > >>
> > >> Bacharel em Ciência da Computação
> > >> UNESP - Bauru
> > >>
> > >> LPIC1 - Linux Professional Institute Certification - Nível 1
> > >>
> > >> address@hidden <renato.diogo%40gmail.com> <renato.diogo%
> 40gmail.com> <renato.diogo%
> > 40gmail.com>
> > >> address@hidden <renato.diogo%40yahoo.com.br><renato.diogo%
> 40yahoo.com.br> <renato.diogo%
> > 40yahoo.com.br>
> > >>
> > >>
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


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



reply via email to

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