2
respostas

Hora da Prática

  1. Elabore um script simples que exiba uma mensagem de boas-vindas quando executado.
    #!/bin/bash
    # Script que exibe uma simples mensagem de boas-vindas.
    
    echo "Seja bem-vindo ao universo Bourne Again SHell!"
    
  2. Construa um script que seja capaz de criar uma cópia de segurança de um diretório específico.
    #!/bin/bash
    # Script que faz uma cópia de segurança de um diretório.
    
    echo -n "Digite o nome do diretório a ser copiado: "
    read DIRETORIO
    
    if [ ! -d "$DIRETORIO" ]; then # Testa se o valor fornecido pelo usuário é um diretório válido.
            echo "O programa $0 requer o nome de um diretório válido para executar a cópia."
           exit 1
    fi
    
    ls "$DIRETORIO" # Mostra o conteúdo transferido para o novo diretório.
    DIRETORIO_COPIA="${DIRETORIO}_$(date +%d%m%Y_%H%M%S)_copia" # Cria uma variável com o nome do diretório e acrescenta data e hora de sua criação.
        
    cp -r "$DIRETORIO" "$DIRETORIO_COPIA" # Copia o conteúdo do diretório origem fernecido pelo usuário para o novo diretório destino.
    echo "Cópia concluída em $DIRETORIO_COPIA."
    
  3. Crie um script que solicite ao usuário o nome de um diretório e, em seguida, o crie.
    #!/bin/bash
    # Script que possibilita a criação de um novo diretório a partir do nome fornecido pelo usuário.
    
    ls -d */ # Lista os diretórios existentes no diretório atual ajudando o usuário a evitar nomes duplicados.
    
    while true; do
    
            echo -n "Forneça um nome, não presente na lista acima, para o novo diretório: "
            read NOME
    
            if [[ "$NOME" == -* ]]; then # Verifica se o nome começa com hífen, o que causa problema no mkdir. Nomes com hífen no meio, como 'novo-diretório', são permitidos.
                    echo "Nome inválido: não é permitido iniciar com hífen. Escolha um nome que comece com letra ou número."
    
            elif [[ -d "$NOME" ]]; then # Verifica se já existe um diretório com o nome informado evitando sobrescrever e gerar erro no mkdir.
                    echo "Nome em uso. Utilize um nome diferente."
    
            elif [[ "$NOME" =~ ^[a-zA-Z0-9_-]+$ ]]; then # Verifica se o nome contém apenas caracteres permitidos: letras, números, hífen ou sublinhado.
                    echo "Nome válido."
                    break
            else
                    echo "Nome inválido: use apenas letras, números, hífen ou sublinhado. Evite espaços e símbolos especiais."
    
            fi
    
    done
    
    # Entendendo: ^[a-zA-Z0-9_-]+$
    # ^ : Garante que a verificação comece no primeiro caractere.
    # a-zA-Z0-9_- : Conjunto de caracteres permitidos.
    #  + : Exige um ou mais caracteres válidos (não permite nome vazio).
    # $ : Garante que o nome termine com um caractere permitido, sem sobras.
    # =~ : Operador de correspondência de padrão.
    
    mkdir "$NOME" # Cria, após a validação na estrutura while, o novo diretório com o nome indicado pelo usuário.
    
    echo "Diretório $NOME criado com sucesso."
    echo "Para acessar, digite: cd \"$NOME\""
    
  4. Escreva um script que aceite um nome de arquivo como argumento e verifique se o arquivo existe.
    #!/bin/bash
    # Script que verifica a existência de um arquivo no diretório atual.
    
    while true; do
    
            echo -n "Digite o nome do arquivo desejado: "
            read ARQUIVO
    
            if [[ -e "$ARQUIVO" ]]; then # Verifica se há alguma correspondência com o nome fornecido.
    
                    if [[ -f "$ARQUIVO" ]]; then # Verifica a existência do arquivo indicado pelo usuário
                            echo "O arquivo $ARQUIVO existe."
                            break
    
                    elif [[ -d "$ARQUIVO" ]]; then # Verifica se o nome fornecido é na verdade um diretório.
                            echo "O $ARQUIVO existe, mas é um diretório."
                            break
                    fi
    
            else
                    echo "O arquivo $ARQUIVO não existe."
                    echo  -n "Digite (n) para fazer uma nova pesquisa ou (e) para encerrar o script: "
                    read OPCAO
            fi
    
            case "$OPCAO" in
    
                    'N'|'n')
                            continue
                            ;;
                    'E'|'e')
                            echo "Encerrando o script..."
                            exit 1
                            ;;
                    *)
                            echo "Opção desconhecida. Encerrando o script..." 
                            ;;
                            exit 1
                            ;;
            esac
    
    done
    
  5. Desenvolva um script que utilize um loop para contar de 1 a 5.
    #!/bin/bash
    # Script que conta de 1 até 5.
    
    NUMERO=1 # Inicia a contagem
    
    while [[ $NUMERO -le 5 ]]; do # Conta até chegar em 5
            echo -n "$NUMERO " # Mostra os valores, na mesma linha, acrescidos de um espaço em branco à direita.
            NUMERO=$(( NUMERO+1 )) # Incrementa a variável NUMERO.
    
    done
    
    echo # Imprime uma quebra de linha após a contagem.
    

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
2 respostas

Olá amigo.
Realmente muito bom.
Obrigado por compartilhar com a gente.
Bons estudos.

Olá, Ronaldo!
Muito obrigado pelo seu feedback!