[Dúvida] script c-shell

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?
 
Não podes simplesmente substituir o breaksw do case 7 por break?
Pelo que vi o break vai terminar o ciclo while como pretendes.
 
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
 
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?
 
Back
Topo