Como retornal números com vírgula no shell script?

Iniciado por rafael###, 22 de Agosto de 2006, 20:54

tópico anterior - próximo tópico

rafael###

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!!!!!!!!!!

_Luks

Use o BC (calculadora muito boa)

x=$(echo "2/3" | bc -l)
com isso a dizima periodica 0.6666666... sera armazenada na variavel $x.

rafael###

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!!!!!!!!!!

Lamego

Que tal verificar você mesmo :) ?
Provávelmente já vem incluido...
João Luís Marques Pinto
Mais programs e jogos para o Ubuntu

rafael###

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!!!!!!!!!!

_Luks


rafael###




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