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 ${usuar...@${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 $u...@$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". [As partes desta mensagem que não continham texto foram removidas]