Infos sur la commande "expr"

chryscrak Messages postés 39 Statut Membre -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
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

  1. Babare
     
    et bien tu peux toujours faire expr n \* n ....
    0
  2. Babar
     
    oups désolé j avais pas vu ke c etait la racine que tu voulais

    attends je cherche...
    0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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]$
    ;-))
    0
    1. chryscrak Messages postés 39 Statut Membre 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
      0
    2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > chryscrak Messages postés 39 Statut Membre
       
      De 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.

      ;-))
      0
    3. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426 > chryscrak Messages postés 39 Statut Membre
       
      Le 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

      :-)
      0
    4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention  
       
      Le scale tu pouvais t'en passer non JP?
      NAN !!! J'veux pô ! Na !
      ;-DDD
      0
    5. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426 > asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention  
       
      Ha 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 :(
      0