Probleme sqrt en bash

guillermo -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,
en ce moment, je fait un programme en bash et j'ai besoin de calculer une racine carrée.
Pour cela, j'utilise la commande sqrt:
pour calculer la racine carrée de la variable "$a" et la mettre dans la variable "$rac", je fais donc : $rac = sqrt($a)

Mais lorsque j'execute le script j'obtiens le message suivant :
./essai2.sh: line 14: Erreur de syntaxe près du symbole inattendu « ( »
./essai2.sh: line 14: '$rac = sqrt($a)'

Merci d'avance.

2 réponses

  1. KarCAroum Messages postés 298 Statut Membre 91
     
    bonsoir,
    bc -l <<<"sqrt($a)"
    rac=$(bc -l <<<"sqrt($a)") (corrigé)
    2
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Salut,

      Une variable en bash se déclare sans le signe "$" (dollar) et sans espace ni avant ni après le signe "=" (égal) ;-((

      rac=$(bc -l <<<"sqrt($a)")
      0
    2. KarCAroum Messages postés 298 Statut Membre 91
       
      certes mais l'essentiel est bc -l <<<"sqrt($a)"
      0
    3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Certes oui, mais mais la remarque était juste dans l'intérêt de notre ami guillermo ;-))
      1
    4. KarCAroum Messages postés 298 Statut Membre 91
       
      elle est tout a fait justifiée
      0
    5. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,

      @zipe31

      Ca me rappelle un message ;-)
      0
  2. guillermo
     
    Merci beaucoup, ca marche. Mais je voudrais comprendre pourquoi on doit mettre : "bc -l".
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Re,

      Essai sans -l et tu verras
      Regarde man bc aussi
      0