Cálculo [RESOLVIDO]

1. Cálculo [RESOLVIDO]

Ewerton Tiago
FIx3r

(usa Ubuntu)

Enviado em 05/03/2010 - 15:41h

Queria calcular dois valores tipo:

echo $num1 / $num2 |bc

queria saber como é que eu faço pra calcular no shell script.

Obrigado.


  


2. Re: Cálculo [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 05/03/2010 - 15:45h

Calcular expressões no linux é simples. É com o comando expr. Ex.:

# expr 1 + 1
2

Se quiser saber mais sobre ele:

# man expr


3. Re: Cálculo [RESOLVIDO]

Ewerton Tiago
FIx3r

(usa Ubuntu)

Enviado em 05/03/2010 - 15:48h

eu queria dividir duas variáveis

coloquei como vocÊ falou:

expr $num1 / $num2

mas mostra erro no sinal /


4. Re: Cálculo [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 05/03/2010 - 15:58h

Era pra t funcionado. Os valores q vc tá passando são numéricos msm?


5. Re: Cálculo [RESOLVIDO]

Ewerton Tiago
FIx3r

(usa Ubuntu)

Enviado em 05/03/2010 - 16:28h

são sim.
Os valores são passados para um arquivo temporário, durante a execução do programa eu consigo visualizar os valores nos arquivos, mas na hora de executar o cálculo dá erro, não em relação aos valores mas ao operador /


6. Re: Cálculo [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 05/03/2010 - 16:39h

Tente colocar assim:

# expr $num1 // $num2

Ou:

# expr $num1 '/' $num2


7. Re: Cálculo [RESOLVIDO]

Ewerton Tiago
FIx3r

(usa Ubuntu)

Enviado em 05/03/2010 - 16:58h

Não funcionou nenhuma das opções.

nem '/'

nem //

muito menos '//' que eu resolvi tentar.


8. Re: Cálculo [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 05/03/2010 - 17:05h

Olha o man do seu comando ae pra vc v...

# man expr


9. Re: Cálculo [RESOLVIDO]

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 05/03/2010 - 17:35h

Posta o código do teu script.


10. Re: Cálculo [RESOLVIDO]

Marcos Paulo Ferreira
Daemonio

(usa Slackware)

Enviado em 05/03/2010 - 19:35h

Você pode usar:

resultado=$((num1/num2))
ou
resultado=$[num1/num2]

OBS: Só irá ocorrer divisão inteira.

Para obter resultado com casas decimais:

resultado=$(echo $num1/$num2 | bc -l)

Outro modo para fazer operações envolvendo números em ponto flutuante, é só você ler uma dica
feita pelo SMarcell (esse cara de cima ae ô) xD

http://www.vivaolinux.com.br/dica/Shell-operacoes-envolvendo-numeros-em-ponto-flutuante/

Acho que é isso.
t+


11. Re: Cálculo [RESOLVIDO]

Douglas Giorgio Fim
douglas.giorgio

(usa Fedora)

Enviado em 05/03/2010 - 23:15h

resultado=$((num1 / num2))
echo $resultado

echo "$num1" / "$num2" | bc
as aspas "" sao importantes

com o expr é a msm coisa

nao testei ainda, mas acho que funciona


12. Re: Cálculo [RESOLVIDO]

Ewerton Tiago
FIx3r

(usa Ubuntu)

Enviado em 08/03/2010 - 11:20h

Pessoal muito obrigado pela ajuda, consegui resolver aqui. porém ainda tenho uma dúvida.

Na hora de exibir a variável resultado o script gera um erro:

comando não encontrado. Não consigo entender o porque.

# !/bin/bash

echo "Digite um numero: "
read num
echo "Digite outro numero: "
read num2

result= $((num/num2))

echo $result


obrigado.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts