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 <[email protected]> escreveu: > De: Leonardo Bites <[email protected]> > Assunto: [shell-script] Como desativar a tecla "esc" > Para: [email protected] > 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 > ${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". ____________________________________________________________________________________ Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com
