[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] yad - abrir terminal e sobrepor janelas
From: |
Julio C. Neves |
Subject: |
Re: [shell-script] yad - abrir terminal e sobrepor janelas |
Date: |
Wed, 18 Jul 2012 17:58:16 -0300 |
Fabiano,
Vc não está usando a potencialidade do YAD. Vc deveria montar um form mais
ou menos da seguinte maneira:
$ yad --form --field Locais:CB 'Local 1!Local 2!...!Local n' --field
"Escolha somente <big><b>uma</b></big>\ndentre as opções a seguir":LBL
--field ADSL:CHK FALSE --field Radio:CHK FALSE
Ou usar a facilidade de botão executar comandos, introduzida na última
release. Repare o que escrevi no meu livro (Bombando o Shell, que, na
editora, está numa promoção de 50% do valor, bastando colocar o código que
está sob a minha assinatura):
======================================================
*--button=BOTAO:ID*
*Para** ID **numérico:*
Adiciona o botão BOTAO à caixa. Se este botão for clicado, o diálogo
produzirá o código de retorno ($?) definido por ID. Há duas maneiras de
definir estes botões:
1.
Simplesmente criando o seu nome e ID. Ex: --button OK:0
2.
Usando botões padrão do GTK+. Ex: --button gtk-ok
Em ambos os casos, o código de retorno será zero e no botão terá escritoOK. A
diferença é que no botão padrão GTK+ a letra O (de OK) virá sublinhada,
para dizer que a combinação de teclas <ALT>+O equivale ao clique do botão.
Você também pode reproduzir este efeito colocando um sublinha (_) antes da
letra que você queira que apareça sublinhada. Por exemplo:
fazendo-se--button="_Botão:0" criamos
um botão onde estará escrito *B*otão e seu código de retorno ($?) será zero.
A lista completa de botões pode ser encontrada na documentação do GTK. E
para consultá-la execute o programa /usr/bin/gtk-demo e procure o item *"Stock
Items and Icon Browser"*. Caso não esteja instalado, faça:
$ sudo apt-get install gtk2.0-examples
O nome do botão, é o que se encontra na terceira coluna.
*Para** ID **não numérico:*
Se ID for não numérico, será tratado como um comando e um clique nesse
botão não encerrará o diálogo, executará a instrução e voltará ao ponto em
que estava. Se no escopo deste comando aparecer a cadeia %d o YAD irá
substituí-la pelo seu PID.
======================================================
Dessa forma vc poderia executar o ssh qdo o botão correspondente fosse
clicado.
Abcs,
Julio
*
*
Em 18 de julho de 2012 14:47, isa_fabi <address@hidden> escreveu:
> **
>
>
> Boa tarde pessoal,
>
> Como faço para abrir um terminal com o comando "ssh
> address@hidden" apartir de um menu exibido pelo yad?
>
> E nesse mesmo menu quando escolho uma das opcoes, uma outra janela é
> aberta com 3 botoes. Gostaria que essa janela fosse sobreposta ao menu, tem
> como fazer?
>
> Abaixo tem o codigo do script que estou montando, para melhorar o
> entendimento do que eu preciso:
>
> #!/bin/bash
>
> menu() {
> while : ; do
> UNIDADE=$(
> yad --list \
> --title 'Servidores' \
> --column="Opc":NUM \
> --column="Locais":TEXT \
> --print-column=1 \
> --hide-column=1 \
> --width="400" \
> --height="300" \
> 01 "Local 1 " \
> 02 "Local 2 " \
> 03 "(....) " \
> )
>
> [ $? -ne 0 ] && exit
> UNIDADE=$(echo $UNIDADE | egrep -o '^[0-9]')
> case "$UNIDADE" in
> 1)
> yad --title "Local 1" --button="_ADSL:1" --button="_RADIO:2"
> --button="_Voltar:3" --text "Acessar servidor pelo link"
> var=$?
> if [ $var = 1 ]; then
> ssh address@hidden
> elif [ $var = 2 ]; then
> ssh address@hidden
> fi
> ;;
> 2)
> yad --title "Local 2" --button="_ADSL:1" --button="_RADIO:2"
> --button="_Voltar:3" --text "Acessar servidor pelo link"
> var=$?
> if [ $var = 1 ]; then
> ssh address@hidden
> elif [ $var = 2 ]; then
> ssh address@hidden
> fi
> ;;
> esac
> done
> }
> menu
>
> Fabiano.
>
>
>
[As partes desta mensagem que não continham texto foram removidas]