+ Responder ao Tópico



  1. #1

    Padrão Dúvida While - Shell

    Segue o esboço de um procedimento que quero fazer:

    A variavel TAAI ve o status de uma unidade de fita, se ele caputar e chegar q esta ONLINE, aparece "Deu certo, proceda" e sai do while e continua.

    Se não aparece "Deu zebra, vamos denovo" espere 5 segundos e tenta denovo correto?

    Não o script for inicializado quando o TAAI capturou como ONLINE , perfeito passa reto pro proximo procedimento, se inicializar como diferente de ONLINE ele caiu pro aguarando, mas insiro a fita verificou via mt -f /dev/st0 status | grep -i -a ONLINE | cut -c6-11 ( o que está no TAAI) e já está ONLINE, se eu cancelar o script e rodar denovo ele passa reto já pegando o ONLINE..

    Parece que não atualiza, por exemplo se eu colocar a variavel TAAI=`cat /tmp/teste.txt` com o dado de OFFLINE, ok ele avisa echo "Deu zebra, vamos denovo" e fica aguardando, depois de 5 segundos vai denovo vai denovo, se eu mudar o conteudo para ONLINE, ele ainda continua no loop, mas se inicialziar o script denovo ele agora aceita como verdadeiro!

    O que estou errando?:




    TAAI=`mt -f /dev/st0 status | grep -i -a ONLINE | cut -c6-11`

    checamidia=true
    while $checamidia = true; do
    if [ "$TAAI" = "ONLINE" ];
    then
    echo "Deu certo, proceda"
    checamidia=false
    else
    echo "Deu zebra, vamos denovo"
    sleep 5
    exit
    fi
    done

  2. #2

    Padrão

    Não sou muito bom em shell script mas...
    tenta assim:
    Código :
    checamidia=true
    while $checamidia = true; do
      TAAI=`mt -f /dev/st0 status | grep -i -a ONLINE | cut -c6-11`
      if  [ "$TAAI" = "ONLINE" ];
        then
        echo "Deu certo, proceda"
        checamidia=false
      else
        echo "Deu zebra, vamos denovo"
        sleep 5
      fi
    done