Ir ao conteúdo
  • Cadastre-se

João Pedro Faia

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

posts postados por João Pedro Faia

  1. Boa Tarde, tenho dois problemas que não consigo resolver neste código. e precisava que alguém com muita mais experiência me ajudasse.

     

    código:

     

    #!/bin/bash

     

    echo "Introduza o seu username:"

    read username

     

    if cat utilizadores.txt | grep -w $username

     

    then

     

    x=${username//@/.}

     

    echo $date  $username >> $HOME//trabalho1/network_$x.txt

     

    else

     

    echo "O utilizador não existe"

     

    exit 0

     

    fi

     

     

    echo "Introduza o username do utilizador a adicionar"

     

    read username2

     

    if cat utilizadores.txt | grep -w $username2

              

    then      

              

    x=${username//@/.}

             

    echo $date  $username2 >> $HOME//trabalho1/network_$x.txt

                  

    exit 0       

          

    else

        

    echo "O utilizador não existe"

        

    exit 0 

        

    fi  

     
    1º problema, quando corro o .sh ele adiciona-me sempre uma linha com os dados do username, como se tivesse um printf para imprimir esses dados mas queria que isso não acontecesse.
     
    2º este ficheiro advém de um outro de nome menu.sh e eu queria que quando ele detecta que o utilizador não existe em vez de fechar o programa abrisse novamente o campo de introdução de username. 
     
    Podiam ajudar?
     
    deixo o código do ficheiro menu.sh:
     
    código menu.sh:
     
    echo

    echo Menu

    echo Escolha uma das opções:

    echo "1. Criação de User"

    echo "2. Adicionar Ligaçao Entre Utilizadores"

    echo "3. Remoção de Ligação"

    echo "4. Backup"

    echo "5. Estatistica"

    echo "6. Sair"

    echo

    echo -n "Escolha uma opção:"

    read opcao

    echo

     

    case $opcao in

    1) ./novo_util.sh ;;

    2) ./adiciona.sh ;;

    3) ./remove.sh ;;

    4) ./backups.sh ;;

    5) ./estatistica.sh ;;

    6) exit ;;

    *) "entrada invalida"   ; echo ; menu ;;

     

    esac

     
     
    Obrigado!!
  2. Boas, tenho um problema com este código, preciso de ler apenas o campo de mail e ele está a ler o 1º campo de cada parte do ficheiro utilizadores.txt

     

    AJUDEM pff

     

    #include <stdio.h>

    #include <stdlib.h>
    #include <signal.h>
    #include <string.h>
     
     
     
     
    void obter_substring(char linha[], char resultado[], char separador, int indice) {
       int i, j=0, meu_indice = 0;
       for (i=0; linha != '\0'; i++) {
         if ( linha != separador ) { 
           meu_indice++;
         } else if (meu_indice == indice) {
           resultado[j++]=linha;
         }
       }
       resultado[j]='\0';
    }
     
    main (){
      char linha[200];
      char mail[100];
      
      FILE *fp;
      fp=fopen("utilizadores.txt", "r");
     
      int i = 0;
     
      while(fgets(linha,200,fp)!= NULL){
     
     
      obter_substring(linha, mail, ' ', 0);
      printf("Primeiro campo: %s\n", mail);
     
    }
      fclose(fp);
     
      return 0;
    }
     

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!