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

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

Re: [shell-script] Como desativar a tecla "esc"


From: Lucien Raven
Subject: Re: [shell-script] Como desativar a tecla "esc"
Date: Tue, 4 Aug 2009 14:54:45 -0700 (PDT)

Leonardo,

pelo que entendi, você está testando o retorno da função SelecionaLog para ver 
se é 255. 

> SelecionaLog
> if [ "$?" != "0" ] && [ "$?" != "255" ];then

Não vai funcionar, a não ser que dentro da função você altere a linha do dialog 
para capturar o ReturnCode em outra variável:

VAR1=$(dialog --backtitle "Caixa Economica Federal" --title "coleta de logs 
Multicanal" --no-cancel --stdout --menu "\nSelecione o tipo de Log que deseja 
capturar:" 18 65 2 1 "Log completo" 2 "Log por data");ERR=$?

Após executar a função, teste a variável $ERR:

if [ "$ERR" != "0" ] && [ "$ERR" != "255" ]

Ou então, na saída da função, saia com um : return $ERR
Aí sim o teste do "$?" irá fazer o que você pretendia.


LR :>









--- Em ter, 4/8/09, Leonardo Bites <address@hidden> escreveu:

> De: Leonardo Bites <address@hidden>
> Assunto: [shell-script] Como desativar a tecla "esc"
> Para: address@hidden
> Data: Terça-feira, 4 de Agosto de 2009, 16:31
> Galera estou apanhando pra impedir
> que a tecla esc feche o meu script já
> tentei como podem ver no codigo tratar o $? =255 mas não
> funcionou. Alguém
> sabe como faço pra desativar essa tecla no dialog.
> Segue o meu script
> 
> 
> #!/bin/bash
> # Autores: Leonardo Bites e Tiago Mingone
> # Script de Automacao do processo de captura de Logs do
> multicanal
> # Data: 06/02/2009
> #
> #Modificacoes
> #
> #Vers‹o 1 - AtualizaŤ‹o para pegar Logs via Rede
> (SSH)
> #Vers‹o 2 - CorreŤ‹o na funŤ‹o Salva Log para
> funcionar com as Vers›es Etch
> e Sarge do Debian e na FunŤ‹o DataLog para corrigir o
> problema de
> duplicidades na captura
> #Vers‹o 3 - SeparaŤ‹o da captura do Banco de dados e o
> log da AplicaŤ‹o e
> modificacao da nomeclatura dos arquivos para o padrao
> indicado pela REDEASP.
> #Vers‹o 4 - AlteraŤ‹o para maquinas 4534 e
> resoluŤ‹o de bug na coleta do
> prolog
> #Vers‹o 5 - Adiciona Informacoes do equipamento
> #Vers‹o 6 - Modifica dados do equipamento
> #Vers‹o 7 - Trava saida para prompt (saida somente com
> senha), finaliza e
> derruba sessao
> 
> 
> export SHELL=/bin/bash
> arq_informacoes="/home/suporte/informacoes.txt"
> 
> #DeclaraŤ‹o de FunŤ›es
> 
> 
> 
> 
> 
> function SelecionaLog() {
>     SELECIONALOG=$(dialog --backtitle "Caixa
> Economica Federal" \
> --title "coleta de logs Multicanal" \
> --stdout \
> --nocancel \
> --menu "\nSelecione a opcao:" 18 65 9 \
> 1 "Coleta logs do SIMMA (Extracash.log)" \
> 2 "Coleta Banco de dados da Aplicacao" \
> 3 "Coleta logs dos drivers da Perto" \
> 4 "Coleta logs dos driver Procomp" \
> 5 "Coleta logs do sistema de atualizacao de pacotes"\
> 6 "Informacoes do equipamento"\
> 7 "Alterar dados do equipamento"\
> 8 "Sair para prompt de comando"\
> 9 "Finalizar coleta de log")
> }
> 
> 
> 
> function TipoLog() {
> TIPO=$(dialog --backtitle "Caixa Economica Federal" \
> --title "coleta de logs Multicanal" \
> --no-cancel \
> --stdout \
> --menu "\nSelecione o tipo de Log que deseja capturar:" 18
> 65 2 \
> 1 "Log completo" \
> 2 "Log por data")
> }
> 
> function TestaTipo(){
> if [ "$TIPO" == "1" ]; then
> DiretorioLog
> else
>    DataLog
> fi
> }
> 
> function DataLog() {
>  #export LANG=pt_br
>  DATA=$(ls -l -q ${DIRETORIO}${ARQUIVOS} --sort=time |grep
> -v ^d |awk
> '{print $6}'|uniq)
> echo $DATA|tr " " "\12" > /home/suporte/DATA
>  whiptail --title \
> "Selecione as datas para coleta de LOG" \
> --checklist "\nDatas disponiveis:" 0 60 $(cat
> /home/suporte/DATA|wc -l)
> $(cat /home/suporte/DATA|while read d; do echo "$d" "."
> "off"; done)
> 2>/home/suporte/data ;
>  DATA_SEL=$(cat /home/suporte/data)
> rm /home/suporte/data
> echo ${DATA_SEL//\"} >/home/suporte/data
> 
> }
> 
> function DiretorioLog() {
>  case ${SELECIONALOG} in
> 1)
> DIRETORIO=/opt/foton/log/
> ARQUIVOS="*"
> ;;
> 2)
> DIRETORIO=/opt/foton/db/
> ARQUIVOS="*"
> ;;
> 3)
> DIRETORIO=/opt/perto/log/
> ARQUIVOS="*"
> ;;
> 4)
> DIRETORIO=/opt/DieboldProcomp/JXFS/DieboldProcompJXFS/Logs/
> ARQUIVOS="*"
>  MODELO=$(cat /root/modelo_procomp)
>  if [ '${MODELO}' = '5' ]; then
>    AMI=/opt/DieboldProcomp/AMI/AMITrace*
> fi
>  if [ -e "/tmp/prolog.log" ]; then
>    TMP="/tmp/prolog.log"
> else
>    TMP="/tmp/prolog/prolog*"
> fi
> 
>         if [ -e "/tmp/prolog/" ]; then
> 
>         TMP=${TMP}
> 
>         else
> 
>          if [ -e
> "/var/prolog.log" ]; then
>      TMP="/var/prolog.log"
> else
>      TMP="/var/prolog/prolog*"
> fi
> fi
> ;;
> 5)
> DIRETORIO=/var/log/
> ARQUIVOS="*_atm.log"
> ;;
> 
> *)
> ;;
> esac
> 
> }
> 
> 
> function SalvaLog() {
> 
>   TTY=$(tty |cut -d "/" -f 3,4)
> 
>   IP=$(who |grep ${TTY} |awk '{print $6}' |tr -d "(
> )")
> 
>   if [ -z $IP ]; then
>   IP=$(who |grep ${TTY} |awk '{print $5}' |tr -d "(
> )")
>   fi
> 
>   USUARIO=$(dialog --stdout --inputbox "Entre com o
> nome do usuario da
> maquina de acesso " 0 0 )
> 
>   clear
>   tput cup 10
>   echo -e "\n Aguarde solicitacao da senha "
> 
>   scp  /home/suporte/${NOMELOG}_`date
> +%d%m%y`.tar.gz
> ${USUARIO}@${IP}:/home/${USUARIO}
> && dialog --stdout --msgbox  "Arquivo de Log
> enviado para a pasta
> /home/${USUARIO} da maquina ${IP}." 20 60 ||  dialog
> --stdout --msgbox
>  "Arquivo de Log nao pode ser transferido verifique as
> permissoes da pasta
> /home/${USUARIO} da maquina ${IP}." 20 60
> 
>   ApagaTudo
>   SelecionaLog
> 
> 
> 
>   #PID=$(ps aux |grep $USER@$TTY |head -n 1 |awk
> '{print $2}')
>   #kill ${PID}
> 
> }
> 
> function NomeLog(){
> 
>   eval NOMELOG=${LOG}"_"${NUM_TERMINAL} ; echo
> $NOMELOG
> 
> }
> 
> function CompactarLog() {
> 
> 
> if [ "$TIPO" = "1" ]; then
> 
> if [ "${SELECIONALOG}" == "1" ]; then
> cd ${DIRETORIO}
> tar -cvzf /home/suporte/${NOMELOG}_`date +%d%m%y`.tar.gz
> ${DIRETORIO} ${TMP}
> ${AMI} ${arq_informacoes}
>  else
> cd ${DIRETORIO}
> tar -cvzf /home/suporte/${NOMELOG}_`date +%d%m%y`.tar.gz
> ${DIRETORIO}${ARQUIVOS} ${TMP} ${AMI} ${arq_informacoes}
> 
>  fi
> else
>  if [ "${SELECIONALOG}" == "1" ]; then
> for i in `cat /home/suporte/data`; do ls -l -N
> ${DIRETORIO}|awk '{print $6"
> "$8}'|grep $i |cut -d " " -f2; done >
> /home/suporte/arquivo.logs
> cd ${DIRETORIO}
> tar -cvzf /home/suporte/${NOMELOG}_`date +%d%m%y`.tar.gz
> --files-from=/home/suporte/arquivo.logs ${TMP} ${AMI}
> ${arq_informacoes}
> rm /home/suporte/arquivo.logs
>  else
> for i in `cat /home/suporte/data`; do ls -l -N
> ${DIRETORIO}${ARQUIVOS}|awk
> '{print $6" "$8}'|grep $i |cut -d " " -f2; done >
> /home/suporte/arquivo.logs
> cd ${DIRETORIO}
> tar -cvzf /home/suporte/${NOMELOG}_`date +%d%m%y`.tar.gz
> --files-from=/home/suporte/arquivo.logs ${TMP} ${AMI}
> ${arq_informacoes}
> rm /home/suporte/arquivo.logs
> fi
> fi
> 
> }
> 
> function ApagaTudo(){
> 
>   rm -f /home/suporte/data
>   rm -f /home/suporte/DATA
>   rm -f /home/suporte/arquivo.logs
>   rm -f /home/suporte/*.tar.gz
>   rm -f /home/suporte/consulta.sql
>   rm -f /home/suporte/informacoes.txt
> 
> }
> 
> function SairPrompt(){
> senha=$(dialog --stdout --title "Caixa Economica Federal"
> --insecure
> --passwordbox "entre com a senha: " 10 50)
> 
> 
> senha_md5=$(echo -n "${senha}" | md5sum |tr -d " ")
> 
> if [ "${senha_md5}" = "0f359740bd1cda994f8b55330c86d845-"
> ]; then
> 
>     break
>     sair="1"
> 
> else
> 
>     dialog  --title 'Senha Incoreta !'
> --msgbox 'A senha esta incoreta tente
> novamente.'  10 50
> 
> fi
> }
> 
> #Excucao do programa
> echo "interacao"
> source Informacao_maquina.sh
> 
> trap "" 2
> 
> SelecionaLog
> if [ "$?" != "0" ] && [ "$?" != "255" ];then
> 
> sair="1"
> 
> fi
> 
> echo "select pmtval from pmt where pmtcod = '65';"
> >/home/suporte/consulta.sql
> 
> export NUM_TERMINAL=$(/opt/firebird/bin/isql
> localhost/3050:/opt/foton/db/EXTRACASH.GDB -u sysdba -p
> caixa -s 1
> -noautocommit -i consulta.sql | tail -2 | head -1 | cut -f1
> -d" ")
> 
> while [ "${sair}" != "1" ];do
> case ${SELECIONALOG} in
> 
>  1)
> export LOG="extracash"
> DiretorioLog
> TipoLog
> TestaTipo
> NomeLog
> CompactarLog
> SalvaLog
> ;;
>  2)
> export LOG="firebird"
> DiretorioLog
> TIPO="1"
> TestaTipo
> NomeLog
> CompactarLog
> SalvaLog
> ;;
> 3)
> export LOG="perto"
> DiretorioLog
> TipoLog
> TestaTipo
> NomeLog
> CompactarLog
> SalvaLog
> ;;
> 4)
> export LOG="procomp"
> DiretorioLog
> TipoLog
> TestaTipo
> NomeLog
> CompactarLog
> SalvaLog
> ;;
> 5)
> export LOG="atualizacao"
> DiretorioLog
> TipoLog
> TestaTipo
> NomeLog
> CompactarLog
> SalvaLog
> ;;
> 6)
>     whiptail --title "Informacoes do Equipamento"
> --msgbox "$(cat
> ${arq_informacoes})" 0 60
>     SelecionaLog
>     ;;
>  7)
>     ./AlteraDados.sh
>     SelecionaLog
>     ;;
>  8)
>         SairPrompt
>         SelecionaLog
>         ;;
> 
>     9)
>     ApagaTudo
>     kill -HUP `pgrep -s 0 -o`
>     #sair="1"
> ;;
> 
> *)
> ;;
> esac
> done
> 
> 
> -- 
> -- 
> Leonardo Bites
> 
> Linux Registered user #449087
> ___________________________
> 
> "Open Source for Open Minds"
> 
> "Pensamentos tornam-se ações,
> 
> ações tornam-se hábitos,
> 
> hábitos tornam-se caráter,
> 
> e nosso caráter torna-se nosso destino".



      
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com


reply via email to

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