
Enviado em 06/11/2016 - 22:29h
Boa noite a todos, sou iniciante em shell script e estou com um problema no while. Estou programando uma calculadora simples e quero que o script aceite apenas as opções de 1 a 5. Porém qualquer coisa que digitar o while fica em loop infinito, dizendo que a opção é inválida e pede para digitar novamente.#!/bin/bash
clear
function calculadora(){
echo "Operações da calculadora: ";
echo " 1) Soma";
echo " 2) Subtração";
echo " 3) Multiplicação";
echo " 4) Divisão";
echo " 5) Voltar para menu principal";
echo -ne "\nDigite a operação: ";
read operacao;
while [ "$operacao" != [1-5] ]
do
echo -n "Opção inválida! Digite novamente: "
read operacao
done
case $operacao in
1)
echo -n "Digite o primeiro valor para somar: ";
read n1;
echo -n "Digite o segundo valor para somar: ";
read n2;
let n3=n1+n2;
echo -e "O resultado da soma é: $n3\n";
;;
2)
echo -n "Digite o primeiro valor para subtrair: ";
read n1;
echo -n "Digite o segundo valor para subtrair: ";
read n2;
let n3=n1-n2;
echo -e "O resultado da subtração é: $n3\n";
;;
3)
echo -n "Digite o primeiro valor para multiplicar: ";
read n1;
echo -n "Digite o segundo valor para multiplicar: ";
read n2;
let n3=n1*n2;
echo -e "O resultado da multiplicação é: $n3\n";
;;
4)
echo -n "Digite o primeiro valor para dividir: ";
read n1;
echo -n "Digite o segundo valor para dividir: ";
read n2;
let n3=n1/n2;
echo -e "O resultado da divisão é: $n3\n";
;;
5)
source main.sh;;
esac
}
calculadora
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









