msoliver
(usa Debian)
Enviado em 13/04/2020 - 18:54h
gabrielrodrigues escreveu:
Elabore um script que realize as operações aritméticas básicas (soma, subtração, divisão e multiplicação), recebendo a operação e os operadores (read). Caso o usuário insira um operador inválido, a execução do script deve ser abortada.
$ sh script.sh
$ Digite os operandos e a operação: 5 + 2
$ 5 + 2 = 7
Boa noite Gabriel.
Segue sugestão:
#!/bin/bash
clear;
testa_operacao() {
[[ "$ope" =~ ^([+-/*])$ ]] && resposta || erro "Operação Inválida"
}
testa_num(){
[[ "$1" =~ ^([0-9.]+)$ ]] || erro "Número Inválido";
}
resposta(){
echo -e "\nResposta:\n${num1} ${ope} ${num2} = $(bc <<< "scale=2;${num1}${ope}${num2}"|sed 's/^\./0./')"
}
erro(){
echo -e "\n$1\n\nUso:\n\"[0-9.]+ [+-/*] [0-9.]+\"\nOperações:\nSoma: +\nSubtração: -\nMultiplicação: *\nDivisão: /\n";
exit;
}
read -p "1º número: " num1;testa_num "$num1";
read -p "2º número: " num2;testa_num "$num2";
read -p "Operação: " ope;testa_operacao;
OBS.: Além do teste da "operação", coloquei um teste de NÚMERO,
se achar desnecessário, é só retirar e não fazer as chamadas para a função.
testa_num "$num1"; testa_num "$num2";
Uso: ./script.sh
Onde "script.sh", é o nome dado ao script
______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________