Sistemas Operacionais Abertos
  • TEC.1023
  • Apresentação
    • ▶️Slides
    • 📖Programa da Disciplina
  • 1. Bimestre
    • ✔️1. Histórico e Evolução do Sistema Operacional Linux
      • ▶️Slides
      • 📽️Videos Complementares
        • Revolution OS :: A História do Linux
        • The Code :: A História do Linux
    • ✔️2. Fundamentos sobre o Linux
      • ▶️Slides
      • 📽️Videoaulas
        • 2.1. Arquitetura do Sistema
        • 2.2. Versões e Distribuições
        • 2.3. Sistemas de Arquivos
        • 2.4. Gerenciamento de Pacotes
    • ✔️3. Instalação, Atualização e Configuração Básica
      • ▶️Slides
      • ✍️Roteiro: Atividade Prática: VPS (Debian Linux) no Microsoft Azure
      • 📽️Videoaulas
        • Instalação do Linux Debian no VirtualBox
        • Linux Debian: Configurando e Utilizando o APT
    • ✔️4. Comandos Básicos
      • ▶️Slides
      • ✍️Lista de Exercícios: Comandos Básicos no Linux
      • ✍️Lista de Exercícios: Comandos Básicos no Linux (2)
      • 📔Apostila: Linux - Comandos Básicos
      • 📽️Videoaulas
        • Comandos Básicos (Exercícios)
    • ✔️5. Fundamentos sobre a Gerência de Sistemas Operacionais Linux
      • ▶️Slides
      • 📽️Videoaulas
        • 5. Unidades de Disco / Interfaces de Rede/ Criação de Usuários
    • ✔️6. Gerenciamento de Arquivos, Pastas e Contas de Usuários
      • ▶️Slides
      • ✍️Roteiro: Atividade Prática: Linux: Gerenciamento de Permissões de Arquivos
      • 📽️Videoaulas
        • 6. Controle de Acesso / Backup e Restauração
  • 2. Bimestre
    • ✔️7. Fundamentos sobre Scripts Shell
      • 📔Gitbook
      • ▶️Slides
      • 📽️Videoaulas
        • Fundamentos sobre Shell Scripts
        • Lista de Exercícios: Questão 01
        • Lista de Exercícios: Questão 02
        • Lista de Exercícios: Questão 03
        • Lista de Exercícios: Questão 04
        • Lista de Exercícios: Questão 05
      • 📑Listas de Exercícios
        • ✍️Lista de Exercícios 01
        • ✍️Lista de Exercícios 02
    • ✔️8. Introdução, Instalação e Configuração Básica de Serviços
      • ▶️Slides
      • 📽️Videoaulas
        • Serviços no Linux: Preparação do Ambiente Cliente/Servidor
        • Serviços no Linux: Instalação do Servidor Web Apache + PHP
        • Serviços no Linux: Instalação do Servidor de Banco de Dados MariaDB
      • 📖Roteiros
        • ✍️Instalação e Configuração de Acesso Remoto (SSH)
        • ✍️Instalação e Configuração de Servidor Web (Apache) + PHP
        • ✍️Instalação e Configuração de Servidor de Transferência de Arquivos (FTP)
        • ✍️Instalação e Configuração de Servidor de Banco de Dados (MariaDB/Mysql)
        • ✍️Gerenciando o Servidor de Banco de Dados (MariaDB/Mysql) via Interface Web
        • ✍️Instalando um Sistema de Gerenciamento de Conteúdo (CMS) para gerenciar páginas Web
Fornecido por GitBook

© 2025 - Ricardo Kléber

Nesta página
  1. 2. Bimestre
  2. 7. Fundamentos sobre Scripts Shell
  3. Listas de Exercícios

Lista de Exercícios 02

Atualizado há 4 meses

Lista de Exercícios :: Shell Scripts [2]

  1. Escreva um Shell Script com uma função ParOuImpar() que testa se o número é par ou ímpar. Então execute um loop com while que solicite ao usuário que digite qualquer número inteiro para testar se é par ou ímpar ou digite 0 (zero) para encerrar a execução do script. O número digitado deve ser testado na função e o resultado exibido na forma ‘O número digitado é par” ou “O número digitado é ímpar”.

Resposta
#!/bin/bash

# Escreva um Shell Script com uma função ParOuImpar() que testa se o número
# é par ou ímpar. Então execute um loop com while que solicite ao usuário que
# digite qualquer número inteiro para testar se é par ou ímpar ou digite 0
# (zero) para encerrar a execução do script. O número digitado deve ser
# testado na função e o resultado exibido na forma ‘O número digitado é par”
# ou “O número digitado é ímpar”.

function ParOuImpar()
{
    clear
    if [ $(($1%2)) -eq 0 ]; then
        echo "$1 é par"
    else
        echo "$1 é ímpar"
    fi
}

while :
do
    echo "Digite um número"
    read NUMERO
    if [ $NUMERO -eq 0 ]; then
        break
    fi
    ParOuImpar $NUMERO
done
clear
echo "Tchau"
  1. Escreva um Shell Script com uma função para cada operação básica (Soma,Subtração,Divisao,Multiplicacao). Então execute um loop com while e dentro dele use o case indicando que o usuário deve digitar 1 para somar, 2 para subtrair, 3 para dividir e 4 para multiplicar ou 0 para encerrar o script. Em seguida (caso o usuário não tenha digitado zero), o script deve pedir os dois números para efetuar a operação, dar a resposta e retornar o loop solicitando a próxima operação.

Resposta
#!/bin/bash

# Escreva um Shell Script com uma função para cada operação básica
# (Coma,Subtração,Divisao,Multiplicacao). Então execute um loop com while
# e dentro dele use o case indicando que o usuário deve digitar 1 para somar,
# 2 para subtrair, 3 para dividir e 4 para multiplicar ou 0 para encerrar o
# script. Em seguida (caso o usuário não tenha digitado zero), o script deve
# pedir os dois números para efetuar a operação, dar a resposta e retornar o
# loop solicitando a próxima operação.

function Soma()
{
    echo "A soma de $1 com $2 é $(($1+$2))"
}

function Subtracao()
{
    echo "A subração de $1 por $2 é $(($1-$2))"
}

function Divisao()
{
    echo "A divisão de $1 por $2 é $(($1/$2))"
}

function Multiplicacao()
{
    echo "A multiplicação de $1 por $2 é $(($1*$2))"
}

while :
do
    echo "Digite a Operação que deseja realizar:"
    echo "[1] para Somar"
    echo "[2] para Subtrair"
    echo "[3] para Dividir"
    echo "[4] para Multiplicar"    
    echo "[0] para Sair"
    read OPERACAO
    if [ $OPERACAO -eq 0 ]; then
        break
    fi
    echo "Informe o primeiro número"
    read Num1
    echo "Informe o segundo número"
    read Num2
    clear
    case "$OPERACAO" in
        1)
        Soma $Num1 $Num2 ;;
        2)
        Subtracao $Num1 $Num2 ;;
        3)
        Divisao $Num1 $Num2 ;;
        4)
        Multiplicacao $Num1 $Num2 ;;
    esac
done
clear
echo "Tchau"

3. Considerando que para um número ser considerado primo ele deve ser divisível somente por 1 e por ele mesmo, implemente em Shell Script a função Primo() e faça um loop com while que solicite um número e execute a função exibindo como resposta se o número é primo ou não até que o usuário digite 0 (zero).

Resposta
#!/bin/bash

# Considerando que para um número ser considerado primo ele deve ser divisível somente
# por 1 e por ele mesmo, implemente em Shell Script a função Primo() e faça um loop com
# while que solicite um número e execute a função exibindo como resposta se o número é
# primo ou não até que o usuário digite 0 (zero).

function Primo()
{
    Divisivel=0
    for teste in $(seq $1 -1 1);
    do
        if [ $(($1%$teste)) -eq 0 ]; then
            Divisivel=$(($Divisivel+1))
        fi
    done
    if [ $Divisivel -eq 2 ]; then
        echo "$1 é Primo"
    else
        echo "$1 NÃO é Primo"
    fi
}

while :
do
    read -p "Digite um Número para Testar (ou 0 para SAIR): " Teste
    if [ $Teste -eq 0 ]; then
        break
    fi
    Primo $Teste
done
  1. Escreva um Shell Script usando a estrutura ‘for’ para exibir a “tabuada” de 5 (como ilustrado abaixo), sendo que os resultados de cada linha devem ser calculados pelo script.

    Tabuada de 5

    1 x 5 = 5

    2x 5 = 10

    …

    10 x 5 = 50

  2. Escreva um Shell Script que gera dois arquivos com 500 linhas cada. No primeiro arquivo o programa escreve apenas os números pares de 1 a 1000 e no outro os ímpares.

Resposta
#!/bin/bash

# Escreva um Shell Script que gera dois arquivos com 500 linhas cada.
# No primeiro arquivo o programa escreve apenas os números pares de 1 a 1000
# e no outro os ímpares.

for Numero in $(seq 1 1000);
do
    if [ $(($Numero%2)) -eq 0 ]; then
        echo $Numero >> pares.txt
    else
        echo $Numero >> impares.txt
    fi
done
  1. Escreva um Shell Script que solicita que o usuário digite uma STRING e então exiba a string invertida (com as letras de trás pra frente). O script deve executar em loop até que o usuário digite ‘PARAR’ (isso finalizará o script). Dica: Use o comando ‘rev’.

  2. A cantina do campus oferece dois tipos de bebida (café ou suco) e gostaria de saber ao final do dia quantos copos foram consumidos de cada um deles. Para auxiliar nesse levantamento, faça um Shell Script que exiba na tela continuamente o consumo de cada tipo de bebida. O menu do sistema é bem simples:

    *********** Consumo de Bebidas na Cantina ***********

    Foram consumidos até o momento:

    * 0 copos de Café

    * 0 copos de Suco

    ****************************************************

    Digite:

    1 para registrar a venda de um copo de Café

    2 para registrar a venda de um copo de Suco

    A cada venda registrada deve ser alterado o valor da quantidade vendida da bebida correspondente. O script só encerra quando o usuário inserir um valor diferente de 1 e 2.

  3. Faça um Shell Script que simule um sistema de controle de um posto de gasolina. A cada abastecimento o frentista utiliza o script para informar o tipo de combustível e a quantidade (valor inteiro). No final do dia o frentista digita 0 (zero) para finalizar o sistema. O menu do sistema de abastecimento deve ser assim:

    **** Posto Roberto Carlos ***

    Valor Apurado no DIA: R$ 0

    *****************************

    Combustível (Etanol, Gasolina, ou Diesel):

    Quantidade de litros abastecida:

    Quando finalizar (digitar zero) o script deve informar o relatório de abastecimentos:

    • Quantidade de carros atendidos

    • Quantidade de litros de etanol vendidos

    • Quantidade de litros de gasolina vendidos

    • Quantidade de litros de diesel vendidos

    • Total apurado no dia (considerando que o litro de etanol é R$ 5, de gasolina é R$ 6 e de diesel é R$ 7)

  4. Faça um Shell Script que insere em um arquivo ‘primos.txt’ todos os números primos do intervalo de 1 a 1000 (utilize a função da questão 03).

  5. Faça um script Python que solicita que o usuário insira dados: produto, valor e repita a solicitação até que o usuário digite ‘fim’. A cada inserção, o script deve inserir os dados informados em um arquivo ‘pedido.txt’ linha-a-linha no formato (produto:valor). Quando o usuário digitar ‘fim’ o script deve ser encerrado (confira no final o cotneúdo do arquivo pedido.txt).

✔️
📑
✍️