Somme en bash

arbmainassara Messages postés 3 Statut Membre -  
arbmainassara Messages postés 3 Statut Membre -
Bonjour,
en essayant d'exécuter ce bout de code;
for i in $machines ; do
        value='cat $i'
        res='echo "${res}+${value}" | bc'
         done

j'ai l'erreur suivante : expr: non-numeric argument

Merci de m'aider :)

2 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Y'a quoi dans la variable "$machines" ?

    Qu'essaies-tu de faire exactement ?
    0
  2. arbmainassara Messages postés 3 Statut Membre
     
    En gros mon programme s'exécute en parallèle sur plusieurs machines. Alors le fichier machines, contient les adresses de toutes mes machines. Après exécution de sa tache, chaque machine écrit son résultat (un réel) dans un fichier portant comme nom son adresse. Donc schématiquement,
    machines contient:
    adresse1
    adresse2
    adresse3
    ...etc
    et on lire dans adresseN: -1.0982789736

    Merci
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Ok.

      Par contre il faudrait afficher ton script en entier, parce que l'erreur retournée "expr: non-numeric argument" fait état de la commande "expr", commande qui n'apparait pas dans ton bout de code ;-((

      Rajoute aussi "set -xv" en dessous de ton shebang afin de débuguer ton script et voir peut être un peu mieux où ça coince, notamment voir si les variables sont bien remplies et interprétées...
      0
    2. arbmainassara Messages postés 3 Statut Membre
       
      Ouiiiiiiii l'erreur ne venait pas de la boucle mais plutôt de ça res='expr $res \* 4' une ligne qui se trouve juste en dessous. Merci pour ton aide !
      0