Dialogbox

1. Dialogbox

andre
negu

(usa Outra)

Enviado em 04/03/2010 - 17:15h

Sera que alguem pode me ajudar com meu script??

Estou montando um menu com Dialog, mas não consigo fazer com que cada menu quando selecionado, chame um <aruivo.sh> diferente.

segue o script:



root@andre:/home/andre/autinstall# cat autoinstall2.sh
#!/bin/bash

# Loop que mostra o menu principal

DIR=`pwd`
chmod -R 777 $DIR/logs
chmod -R 777 $DIR/tmp

#proxima=menu

#while true; do
#case "$proxima" in
#Mostra o menu na tela, com as ações disponíveis


# menu)
# proxima=USUARIOS
dialog \
--title 'AUTOMATOS INSTALL' \
--menu 'Escolha o quê você quer fazer:' \
0 -1 0 \
USUARIOS 'Usuarios, Grupos e kernel' \
DB2 'Instala DB2' \
ASSET 'Cria Banco Asset' \
AUTOM02 'Cria Banco Autom02' \
RTMDB 'Cria Banco RTMDB' \
BANCOS 'Cria Todos os Bancos' \
RECEIVER 'Cria o Recvd' \
CONVERSAO 'Cria Conversao' \
SITE 'Cria Site V1 e V2' \
APLICACOES 'Cria Todas as Aplicacoes' \
CRONTAB 'Crias as crontabs' \
SCRIPTS 'Instala os Scripts necessarios' \
SENDMAIL 'Cria o Sendmail' \
#;;

#USUARIOS)

#ESTE NO CASO SERIA A OPÇÃO (USUARIOS)
$DIR/users.sh >$DIR/tmp/users.out 2>&1

USUARIOs=$(dialog --stdout \
--title 'INSTALANDO USUARIOS' \
--tailbox $DIR/tmp/users.out \
0 -1 0)

#;;

#ESTE SERIA A OPÇÃO PRA INSTALA O DB2, QUANDO SELECIONADO NO MENU.
#DB2)
anterior=menu
primera=asset
$DIR/db2.sh >$DIR/tmp/db2.out 2>&1

dialog --stdout \
--title 'INSTALANDO DB2' \
--tailbox $DIR/tmp/db2.out \
0 0
#;;

#ASSET)

# home=inst

#$DIR/asset.sh >$DIR/tmp/asset.out 2>&1

#dialog \
# --title 'INSTALANDO DB2' \
# --tailbox $DIR/tmp/asset.out \
# 0 0
#;;

#AUTOM02)

# home=inst

#$DIR/autom02.sh >$DIR/tmp/autom02.out 2>&1

#dialog \
# --title 'INSTALANDO DB2' \
# --tailbox $DIR/tmp/autom02.out \
# 0 0
#;;
#esac

retorno=$?
[ $retorno -eq 1 ] && proxima=$anterior # cancelar
[ $retorno -eq 255 ] && break # Esc

#done


agradeço desde já!!



  


2. Re: Dialogbox

Perfil removido
removido

(usa Nenhuma)

Enviado em 05/03/2010 - 01:48h

nao entendi nada do seu script, vc ja termino ele?? ja tentou debuga o script

bash -xv script.sh

da uma lida nisso:

http://aurelio.net/shell/dialog/

me ajudou muito no inicio


3. Re: Dialogbox

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 05/03/2010 - 11:06h

pergunta bem básica ... as linhas comentadas ... deveriam estar comentadas mesmo?


4. Re: Dialogbox

Marcos Paulo Ferreira
Daemonio

(usa Slackware)

Enviado em 06/03/2010 - 06:27h

O negócio é você comparar a saída do menu e executar o script correspondente.
E é bom também você usar a opção --stdout do dialog também na parte do menu, assim você
pode pegar o retorno dele mais facilmente.

Exemplo:

RESPOSTA=$(dialog --stdout --menu 'Escolha' 0 0 0 BANCOS 'Cria Todos os Bancos')

Vai aparecer uma caixinha com só uma opção, mas é só pra ilustrar xD

Depois de escolhar a opção, agora é só testar o retorno:

[ $RESPOSTA = "BANCOS" ] && $DIR/criar_todos_os_bancos.sh

Agora faça o mesmo para todas as opções. (Nesse caso até aconselho a usar um case)

Acho que é isso.
t+


5. Re: Dialogbox

andre
negu

(usa Outra)

Enviado em 08/03/2010 - 15:10h

uma pergunta:


se fosse um dialog --checkbox, seria a mesma estrutura??


6. Re: Dialogbox

Marcos Paulo Ferreira
Daemonio

(usa Slackware)

Enviado em 08/03/2010 - 16:20h

--checkbox ou --checklist ?? :S

Bem, para usar o checklist é quase a mesma coisa que o menu. A diferença, é que agora você pode selecionar mais de um elemento dentre as opções.

$ dialog --checklist 'Msg' 0 0 0 1 'Item 1' off 2 'Item 2' on 3 'Item 3' off

São três opções, sendo que segunda é inicialmente marcada quando se abre a jenelinha de diálogo.

Para mais opções, veja a tutorial do Oreio que o douglas postou:

http://aurelio.net/shell/dialog/#checklist

Espero ter ajudado
t+


7. Re: Dialogbox

andre
negu

(usa Outra)

Enviado em 09/03/2010 - 10:36h

eu poderia fazer desta maneira tbm???



RESPOSTA=$(dialog \
--title 'Seleção dos Componentes' \
--checklist 'O que você quer instalar?' \
0 0 0 \
USUARIOS 'Instala usuarios' off \
DB2 'Instala o DB2' off \
ASSET 'Instala Banco ASSET' off \
AUTOM02 'Instala Banco AUTON02' off \
RTMDB 'Instala Banco RTMDB' off \
Aplicações 'Instala todas as Aplicações' off \
Sites 'Instala Sites V1 e V2' off \
Crons 'Instala Corns' off \
SENDMAIL 'Instala SENDMAIL' off )



[ $RESPOSTA = "$dialog" ] && $DIR/$arquivo

(a ideia é o seguinte: se [$RESPOSTA = qq opção do menu] && va no diretori e rode seu devido script)


me corrija se eu estiver errado


8. Re: Dialogbox

andre
negu

(usa Outra)

Enviado em 09/03/2010 - 15:36h

ae, refiz o script de outra forma, mas agora ta dando erro!!

mas ta tudo certinhu, examinei o script varias vezes!!!


vou colar ele aki:



#!/bin/bash

#########################
# Criado por André Luíz #
#########################

umask 000
DIR=`pwd`
ls -lh $DIR/logs > /dev/null
if [ $? != 0 ];then
mkdir -p $DIR/logs
if [ $? != 0 ];then
echo "erro ao criar o diretório $DIR/logs"
exit 1
fi
fi

chmod -R 777 $DIR/logs



# Loop que mostra o menu principal
#while : ; do




RESPOSTA=$(dialog --stdout \
--title 'AUTOMATOS INSTALL' \
--menu 'O que voce quer instalar?' \
0 0 0 \
USUARIOS 'Instala usuarios' \
DB2 'Instala o DB2' \
ASSET 'Instala Banco ASSET' \
AUTOM02 'Instala Banco AUTON02' \
RTMDB 'Instala Banco RTMDB' \
APLICACAO 'Instala todas as Aplicações' \
RECEIVER 'Instala o Recvd' \
CONVERSAO 'Instala a Conversao' \
BANCOS 'Instala Todos os bancos' \
SiteV1 'Instala Site V1' \
SiteV2 'Instala site V2' \
CRONS 'Instala Corns' \
SENDMAIL 'Instala SENDMAIL' )

echo "RESPOSTA = $RESPOSTA"

case $RESPOSTA in

USUARIOS)

$DIR/users.sh > /tmp/users.out 2>&1

dialog --stdout \
--title 'Instalando Usuarios' \
--tailbox /tmp/users.out \
0 0

;;

DB2)

$DIR/db2.sh > /tmp/db2.out 2>&1

dialog --stdout \
--title 'Instalando DB2' \
--tailbox /tmp/db2.out \
0 0

;;

ASSET)

$DIR/asset.sh > /tmp/asset.out 2>&1

dialog --stdout \
--title 'Instalando Banco Asset' \
--tailbox /tmp/asset.out \
0 0



;;

AUTOM02)

$DIR/autom02.sh > /tmp/autom02.out 2>&1

dialog --stdout \
--title 'Instalando Banco AUTOM02' \
--tailbox /tmp/autom02.out \
0 0


;;

RTMDB)

$DIR/rtmdb.sh > /tmp/rtmdb.out 2>&1

dialog --stdout \
--title 'Instalando Banco rtmdb' \
--tailbox /tmp/rtmdb.out \
0 0


;;
APLICACAO)

$DIR/aplicacoes.sh > /tmp/aplicacoes.out 2>&1

dialog --stdout \
--title 'Instalando Aplicacoes' \
--tailbox /tmp/aplicacoes.out \
0 0


;;

Site)

$DIR/site.sh > /tmp/site.out 2>&1

dialog --stdout \
--title 'Instalando SITE V1' \
--tailbox /tmp/site.out \
0 0


;;

SiteV2)

$DIR/siteV2.sh > /tmp/siteV2.out 2>&1

dialog --stdout \
--title 'Instalando SITE V2' \
--tailbox /tmp/siteV2.out \
0 0
;;

RECEIVER)

$DIR/receiver.sh > /tmp/receiver.out 2>&1

dialog --stdout \
--title 'Instalando Receiver' \
--tailbox /tmp/receiver.out \
0 0
;;

BANCOS) [DA ERRO NESSA LINHA]

$DIR/banco.sh > /tmp/banco.out 2>&1

dialog --stdout \
--title 'Instalando Todos os Bancos' \
--tailbox /tmp/banco.out \
0 0
;;

CONVERSAO)

$DIR/conversao.sh > /tmp/conversao.out 2>&1

dialog --stdout \
--title 'Instalando Conversao' \
--tailbox /tmp/conversao.out \
0 0
;;
CRONS) [DA ERRO NESSA LINHA]

$DIR/cron.sh > /tmp/cron.out 2>&1

dialog --stdout \
--title 'Instalando Crons' \
--tailbox /tmp/cron.out \
0 0
;;

esac


9. Re: Dialogbox

Marcos Paulo Ferreira
Daemonio

(usa Slackware)

Enviado em 09/03/2010 - 21:01h

Ok! Mas quais erros estão aparecendo? É erro estrutural no script ou o script funciona, mas não faz aquilo que você quer?

t+






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts