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

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

Re: [shell-script] dialog II


From: Aurelio Marinho Jargas
Subject: Re: [shell-script] dialog II
Date: Tue, 25 May 2004 17:19:16 -0300 (ART)

oi alessandro,

 --- Alessandro <address@hidden> escreveu:

> achei q fosse mais facil...vou colar um trecho do meu codigo

realmente é complicado pois envolve algumas abstrações de
shell, espero que eu consiga explicar.

em resumo, você vai ter que usar o eval e compor a linha
de comando inteira do dialog, colocando aspas ao redor
da string que tem mais de uma palavra.



> Tela_inicial(){
>         dialog --stdout --menu 'Gerenciador de Impressao' \
>         0 0 0 \
>         $(for i in $(func_imp ); do
>                 PR=$(func_status "$i")
>                 echo -E "$i "$PR""
>         done
>         )
> }


como a tarefa é complicada, vamos dividi-la em duas. primeiro
jogue as opções do menu numa variável, use o echo para conferir
se está tudo certo:

 $ opcoes=$(for i in p305 p645; do echo -n " $i \"off line\""; done)
 
 $ echo $opcoes
 p305 "off line" p645 "off line"

a pegadinha sãao as aspas escapadas dentro do echo, que
permanecem dentro da variável $opcoes. assim elas "protegem"
as duas palavras, para que o shell as trate como uma só.

agora é o pulo do gato, fazer do comando todo uma stringona
entre "aspas" e usar o eval (olha ele de novo, no mesmo dia,
o julio deve estar se deleitando agora :) para executar o
comando:

 $ eval "dialog --menu titulo 0 0 0 $opcoes"

o bom de se separar numa variável as opções é que o código
também fica mais legível.

não vou testar aqui, mas a tua função vai ficar +- assim:


Tela_inicial(){

        opcoes=$(for i in $(func_imp ); do
                    PR=$(func_status "$i")
                    echo -nE " $i \"$PR\""
                 done
        )

        eval "dialog --stdout --menu 'Gerenciador de Impressao' \
        0 0 0 $opcoes"
}


eu ainda colocaria o titulo do menu em outra variável pra
linha de chamada do dialog caber numa linha só e ficar mais
bonitinho.

beleza?


=====
-- 
Aurelio Marinho Jargas, Curitiba, Conectiva
Novo: zzbovespa zzloteria http://aurelio.net/zz
txt2tags versao 2.0 BETA1 http://txt2tags.sf.net/beta
V FISL com um toque verde http://aurelio.net/curso

______________________________________________________________________

Participe da pesquisa global sobre o Yahoo! Mail: 
http://br.surveys.yahoo.com/global_mail_survey_br


reply via email to

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