1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Dúvida] script c-shell

Discussão em 'Programação' iniciada por jony69jkl, 24 de Junho de 2012. (Respostas: 3; Visualizações: 806)

  1. jony69jkl

    jony69jkl Power Member

    Boas tardes
    Estou aqui com uma dúvida

    Código:
    #!/bin/csh
    
    while()
       echo "menu com 7 opções"
       set escolha="$<"
       switch($escolha)
       case 1: echo " 1"
               breaksw
       case 2: echo " 2"
               breaksw
       case 3: echo " 3"
               breaksw
       case 7: echo " 7"
               breaksw
       default: echo" algo válido"
               breaksw
       endsw
    end
    
    Ora a minha opção 7 é sair do programa, a minha dúvida é como faço de maneira a que o while dependa do $escolha ser diferente de 7 para se repetir e caso seja igual sai do programa...com um ciclo do...while fazia se bem mas não existe para c-shell. Alguém que perceba que me possa explicar?
     
  2. Aparicio

    Aparicio /dev/mod
    Staff Member

    Não podes simplesmente substituir o breaksw do case 7 por break?
    Pelo que vi o break vai terminar o ciclo while como pretendes.
     
  3. jony69jkl

    jony69jkl Power Member

    já resolvi...Obrigado aparicio

    Tenho mais uma dúvida

    tenho um ficheiro com perguntas assim

    C1: Pergunta1

    C2: Pergunta 2

    como faço para que quando inserir uma nova ele va buscar o C2 +1 do 1º field?
    é viavél assim?
    Código:
    set ultima =`cut -f1 -d: nome do ficheiro | tail -1`--> o resultado disto dá o C2
    @ ultima = $ultima +1
    echo " $ultima: $pergunta">> ficheiro ja existente 
    dá-me erro de sintax no @ mas suponho que mesmo assim não vá funcionar...ajuda sff
     
  4. jony69jkl

    jony69jkl Power Member

    já resolvi tbm o bug anterior

    Código:
    #!/bin/csh
    set inicio=1
    while ($inicio <100)
         echo "***************Trabalho Final SO 2011/2012***************"
         echo "*                                                       *"
         echo "*********************************************************"
         echo "*                        Menu                           *"
         echo "*********************************************************"
         echo "*                                                       *"
         echo "*(1) Inserir uma bateria de questões para uma nova disc.*"
         echo "*(2) Inserir perguntas                                  *"
         echo "*(3) Inserir respostas                                  *"
         echo "*(4) Eliminar perguntas                                 *"
         echo "*(5) Encriptar e desencriptar ficheiros com passwords   *"
         echo "*(6) Fazer Teste                                        *"
         echo "*(7) Sair                                               *"
         echo "*                                                       *"
         echo "*********************************************************"
         echo "*                    Realizado por :                    *"
         echo "*********************************************************"
         echo "*                                                       *"
         echo "*                 xxx Nºxxx                 *"
         echo "*                xx Nºxxx                  *"
         echo "*********************************************************"
    
                                
         set escolha="$<"
         switch("$escolha")
         case 1:
        echo "Insira o nome da disciplina"
        set nome="$<"
        echo "Insira a pergunta?"
        set pergunta="$<"
        echo "P1:$pergunta" >> ~/testbattery/q_$nome.txt
            echo "" >> ~/testbattery/rq_$nome.txt
            echo "" >> ~/testbattery/sol_q_$nome.txt    
        breaksw
         case 2:
            echo "Escolha a bateria onde pretende inserir"
            set bat=`ls q*.*`
            echo "$bat"
            set bateria="$<"
            echo "Insira uma pergunta"
            set perg="$<"
            set ultima=`cut -f1 -d: $bat | tail -1`
        set iteracao=`echo $ultima | tr -d "P"`
            @ iteracao = $iteracao + 1
            echo "P${iteracao}:$perg" >> ~/testbattery/$bat
        breaksw
         case 3:
        echo "Escolha em que disciplina quer inserir respostas"
        set bat=`ls rq*.*`
        echo "$bat"
            set bateria="$<"
            echo `cat $bateria`
        breaksw
         case 4:
        echo "Eliminar perguntas"
        breaksw
         case 5:
        echo "Encriptar e desencriptar ficheiro com passwords 
    diferentes"
        breaksw
         case 6:
        echo "Escolha o teste que quer fazer:"
        set bata=`ls q*.*`
        echo "$bata"
        set bateri="$<"
        set na=`cat $bateri`
        echo $na
        breaksw
         case 7:
        echo "Obrigado por usar a bateria de testes..."
        exit
         default: 
        echo "Insira algo válido"        
        breaksw
         endsw
    
    end
    
    o meu problema agora é na linha, dá me erro
    Código:
    echo "P${iteracao}:$perg" >> ~/testbattery/$bat
    e nesta parte

    Código:
    echo "Escolha o teste que quer fazer:"
        set bata=`ls q*.*`
        echo "$bata"
        set bateri="$<"
        set na=`cat $bateri`
        echo $na
    em que a variavel bata fica com os ficheiros de testes que existem q_nome da disciplina.txt, o utilizador escolhe o ficheiro e supostamente aquele cat havia de mostrar as perguntas...alguém que me possa ajudar sff?
     

Partilhar esta Página