Autor Tópico: Como retornal números com vírgula no shell script?  (Lida 5955 vezes)

Offline rafael###

  • Usuário Ubuntu
  • *
  • Mensagens: 154
    • Ver perfil
Como retornal números com vírgula no shell script?
« Online: 22 de Agosto de 2006, 20:54 »
Gente tava querendo fazer uma calculadora, ficou boa dentro do possível mas como eu retorno resultados com vírgula???
A calculadora atualmente só calcula inteiros :(!
Gostaria de saber com retornar resultados fracionários!!!

Aí ta o código (não reparem nos erros hehehe):

Citar
#!/bin/bash
clear
echo -e "*_________________________________________*\n"
echo -e "          Calculadora shell                "
echo -e "*_________________________________________*\n"
echo -e "\n\nQue operação deseja realizar? (adi, sub, mul, div)"
read OPERACAO
if [ $OPERACAO = adi ]; then
  clear
  echo -e "______________________________________\n"
  echo -e "               Somar                    "
  echo -e "______________________________________\n"
  echo -e "\n\nDigite o primeiro número: \c"
  read NUM1
  echo -e "\n\nDigite o segundo número: \c"
  read NUM2
  echo -e "\n"
  echo "Resultado:"
  echo $(($NUM1+$NUM2))
  echo -e "\n\n"
  echo "Deseja recomeçar operação? (sim, não)"
  read RECOMECAR
  echo -e "\n"
  if [ $RECOMECAR = sim ]; then
     ./calc.sh
  elif [ $RECOMECAR = não ]; then
     clear     
     echo "Saindo do programa!"
     sleep 2
     exit
  else
     clear
     echo "Opção inexistente digite sim ou não! Finalizando o programa!"
     sleep 2
     exit
  fi   
elif [ $OPERACAO = sub ]; then 
  clear
  echo -e "______________________________________\n"
  echo -e "              Subtrair                  "
  echo -e "______________________________________\n"
  echo -e "\n\nDigite o primeiro número: \c"
  read NUM1
  echo -e "\n\nDigite o segundo número: \c"
  read NUM2
  echo -e "\n"
  echo "Resultado:"
  echo $(($NUM1-$NUM2))
  echo -e "\n\n"
  echo "Deseja recomeçar operação? (sim, não)"
  read RECOMECAR
  echo -e "\n"
  if [ $RECOMECAR = sim ]; then
     ./oi.sh
  elif [ $RECOMECAR = não ]; then
    clear
    echo "Saindo do programa!"
    sleep 2
    exit
  else
    clear
    echo "Opção inexistente digite sim ou não! Finalizando o programa!"
    sleep 2
    exit
  fi   
elif [ $OPERACAO = mul ]; then
  clear
  echo -e "______________________________________\n"
  echo -e "             Multiplicar                "
  echo -e "______________________________________\n"
  echo -e "\n\nDigite o primeiro número: \c"
  read NUM1
  echo -e "\n\nDigite o segundo número: \c"
  read NUM2
  echo -e "\n"
  echo "Resultado:"
  echo $(($NUM1*$NUM2))
  echo -e "\n\n"
  echo "Deseja recomeçar operação? (sim, não)"
  read RECOMECAR
  echo -e "\n"
  if [ $RECOMECAR = sim ]; then
     ./calc.sh
  elif [ $RECOMECAR = não ]; then
    clear
    echo "Saindo do programa!"
    sleep 2
    exit
  else
     clear
     echo "Opção inexistente digite sim ou não! Finalizando o programa!"     
     sleep 2
     exit
  fi   
elif [ $OPERACAO = div ]; then
  clear
  echo -e "______________________________________\n"
  echo -e "               Dividir                  "
  echo -e "______________________________________\n"
  echo -e "\n\nDigite o primeiro número: \c"
  read NUM1
  echo -e "\n\nDigite o segundo número: \c"
  read NUM2
  echo -e "\n"
  echo "Resultado:"
  echo $(($NUM1/$NUM2))
  echo -e "\n\n"
  echo "Deseja recomeçar operação? (sim, não)"
  read RECOMECAR
  echo -e "\n"
  if [ $RECOMECAR = sim ]; then
     ./calc.sh 
elif [ $RECOMECAR = não ]; then
    clear
    echo "Saindo do programa!"
    sleep 2
    exit
  else
     clear
     echo "Opção inexistente digite sim ou não! Finalizando o programa!"
     sleep 2
     exit
  fi   
else
  echo "Operação inexistente!!!"
  echo "Deseja recomeçar operação? (sim, não)"
  read RECOMECAR
  echo -e "\n"
  if [ $RECOMECAR = sim ]; then
     ./calc.sh
  else
     clear
     echo "Opção inexistente digite sim ou não! Finalizando o programa!"
     sleep 2
     exit
  fi   
fi 

Flw vlw gente!!!



GNU/Linux e SL um novo estilo de vida!!!!!!!!!!

Offline _Luks

  • Usuário Ubuntu
  • *
  • Mensagens: 202
  • Debian Lenny
    • Ver perfil
    • Meu Blog
Re: Como retornal números com vírgula no shell script?
« Resposta #1 Online: 24 de Agosto de 2006, 12:22 »
Use o BC (calculadora muito boa)

Código: [Selecionar]
x=$(echo "2/3" | bc -l)com isso a dizima periodica 0.6666666... sera armazenada na variavel $x.

Offline rafael###

  • Usuário Ubuntu
  • *
  • Mensagens: 154
    • Ver perfil
Re: Como retornal números com vírgula no shell script?
« Resposta #2 Online: 25 de Agosto de 2006, 10:42 »
Eae blz?

Mas esse bc jah vem por padrão no ubuntu 5.10 ou tenho q baixa-lo com apt-get ???

Vlw!!!!



GNU/Linux e SL um novo estilo de vida!!!!!!!!!!

Offline Lamego

  • Usuário Ubuntu
  • *
  • Mensagens: 1.943
    • Ver perfil
Re: Como retornal números com vírgula no shell script?
« Resposta #3 Online: 25 de Agosto de 2006, 13:05 »
Que tal verificar você mesmo :) ?
Provávelmente já vem incluido...
João Luís Marques Pinto
Mais programs e jogos para o Ubuntu

Offline rafael###

  • Usuário Ubuntu
  • *
  • Mensagens: 154
    • Ver perfil
Re: Como retornal números com vírgula no shell script?
« Resposta #4 Online: 25 de Agosto de 2006, 18:00 »
Tá bom desculpa não queria amolar!!!!

Mas é que eu uso dual-boot e hj não pude logar ainda (e a curiosidade mata), mas valew Lamego.
(meu modem no ubuntu 5.10 está desconfigurado por enquanto!)

Obrigado!



GNU/Linux e SL um novo estilo de vida!!!!!!!!!!

Offline _Luks

  • Usuário Ubuntu
  • *
  • Mensagens: 202
  • Debian Lenny
    • Ver perfil
    • Meu Blog
Re: Como retornal números com vírgula no shell script?
« Resposta #5 Online: 27 de Agosto de 2006, 15:59 »
vem em todas as versoes do ubuntu :D

Offline rafael###

  • Usuário Ubuntu
  • *
  • Mensagens: 154
    • Ver perfil
Re: Como retornal números com vírgula no shell script?
« Resposta #6 Online: 29 de Agosto de 2006, 10:16 »
Obrigado _Luks :)!!!



GNU/Linux e SL um novo estilo de vida!!!!!!!!!!