Shell: Calcular a raiz quadrada

Para calcular a raiz quadrada de um número em Shell, use o comando bc. Ele é uma calculadora completa, que entre outras funções úteis, tem a sqrt (de “square root”).

Basta mandar o comando pela entrada padrão (STDIN) e o resultado aparece na saída padrão (STDOUT):

$ echo "sqrt(16)" | bc
4

$ echo "sqrt(144)" | bc
12

Para guardar o número e o resultado em variáveis, faça assim:

numero=144
resultado=$(echo "sqrt($numero)" | bc)

echo "A raiz quadrada de $numero é $resultado"
This entry was posted in Shell and tagged , , , , . Bookmark the permalink.

6 Responses to Shell: Calcular a raiz quadrada

  1. Alguns shells são capazes de fazer o mesmo usando algum modo matematico built-in. Basicamente uma raiz quadrada é o mesmo que elevar o numero à potencia 1/2 (lembram disso?), veja como fazer via ksh:

    $ echo $((2**3)) # 2 elevado à 3 potencia
    8
    $ echo $((9**0.5)) # raiz quadrada de 9
    3
    $ echo $((10**0.5)) # raiz quadrada de 10
    3.16227766017

    Vc pode fazer o mesmo com zsh. Infelizmente o Bash não suporta operações matemáticas com numeros não-inteiros, mas vc pode trabalhar com potencias inteiras (como o primeiro exemplo).

  2. tenchi says:

    Olá, acredito que, se for uma tarefa constante, compensa até criar uma função. Algo do tipo:

    sqrt() { echo “sqrt($1)” | bc ; } # ou bc -l

    Aí é só chamar:

    i=$(sqrt 10)

    echo $i
    3

    E Tiago, não sabia que o ksh e o zsh faziam isto… Mancada do pessoal do bash, hein? É o shell mais usado mas não implementa muitos recursos legais que os outros tem… Tem um colega meu que tentou durante um longo tempo me fazer usar o zsh, que percebi ser bem melhor que o bash mesmo, mas por alguma razão continuo firme neste segundo…

  3. Maria Elisa says:

    (v3 + v2)²

  4. gabriel says:

    qual é a raiz quadrada de V2.V3

  5. quero saber qual a raíz quadrada de 1460.

  6. vitor says:

    será que alguem me pode ajudar???
    eu tenho de f,azer um trabalho em bash shell script onde tenho de criar uma calculadora numerica. o meu problema é nao conseguir usar o cos, sin, exp, tan, cotan e ln.
    ja me disseram pra acrescentar |bc -l no fim dessa linha de codigo, mas tb n da…

Comments are closed.