Infos sur la commande "expr"

Bonjour !
j'écris un script shell avec l'editeur vi ! mon pb c calculer la racine carrée d'un nombre avec la commande "expr" ! eske c possible ou bien existe t-il une autre commande qui le fait !
Merci de me répondre

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. oups désolé j avais pas vu ke c etait la racine que tu voulais

    attends je cherche...
    1. Modérateur
      Salut,

      Essaie de voir du côté de la commande "bc" (man bc) et de sa fonction "sqrt" (qui renvoie la racine carrée)...
      Un exemple :
      [jp@Mandrake tmpfs]$ cat calcul.sh
      #! /bin/bash
      # calcul.sh
      # script d'essai de "bc"
      
      echo "Entrez un entier positif :"
      read entier
      resultat=`bc -l << EOF
      scale = 0
      sqrt($entier)
      EOF`
      echo "La racine carrée de "$entier "est :" $resultat
      
      [jp@Mandrake tmpfs]$ sh calcul.sh
      Entrez un entier positif :
      16
      La racine carrée de 16 est : 4
      [jp@Mandrake tmpfs]$
      ;-))
      1. Thanks jipicy c marche ! mais je n'ai pas compris le rôle du "EOF" et du "scale = 0" ! merci de m'expliciter

        :-) ; always learning ........ le monde est pr les téméraires
      2. Modérateur
        @chryscrakDe rien ;-)) heureux pour toi.

        Alors "EOF" (End Of File) : la commande s'exécute jusqu'à ce qu'elle rencontre le terme "EOF".
        Pour "scale=0", un petit "man bc" t'aurait donné :
        scale ( expression )
        La valeur de la fonction scale est le nombre de chiffres après
        le point décimal dans l'expression.

        ;-))
      3. Webmaster
        @chryscrakLe scale tu pouvais t'en passer non JP?

        Chez moi,

        $ echo "sqrt(8)" | bc
        2
        $ echo "sqrt(8)" | bc -l
        2.82842712474619009760
        $ echo "scale=2; sqrt(8)" | bc -l
        2.82

        :-)
      4. Modérateur
        @asevereLe scale tu pouvais t'en passer non JP?
        NAN !!! J'veux pô ! Na !
        ;-DDD
      5. Webmaster
        @asevereHa ben dans ce cas alors :)

        Arf, je viens de me rendre compte que tu avait mis "bc -l"
        J'avais lu -1, ça m'avait pas choqué plus que ça :(