J'ai un problème chaque fois que j'ajoute plus de 3 nombres avec plusieurs opérateurs. (J'ai essayé expr, bc,Impossible d'ajouter plus de 2 variables
SUM=$(($S1 + $S2 + $S3))
et bien d'autres formes, mais chaque fois que j'ai 3 variables j'obtenir cette erreur.
expr: non-integer argument
expr: syntax error
C'est quand je le fais avec 2 variables (fonctionne très bien)
#!/bin/sh
FILE=$1
while read -r SID FIRST LAST S1 S2 S3
do
SUM=$(expr $S1 + $S2)
AVG=$(expr $SUM/3)
printf '%d [%d] %s, %s\n' "$AVG" "$SID" "$LAST" "$FIRST"
done < "$FILE" | sort
et quand je fais 3 variables (ne fonctionne pas)
#!/bin/sh
FILE=$1
while read -r SID FIRST LAST S1 S2 S3
do
SUM=$(expr $S1 + $S2 + $S3)
AVG=$(expr $SUM/3)
printf '%d [%d] %s, %s\n' "$AVG" "$SID" "$LAST" "$FIRST"
done < "$FILE" | sort
expr: non-integer argument
expr: syntax error
fichier txt
123456789 Lee Johnson 72 85 90
999999999 Jaime Smith 90 92 91
888111818 JC Forney 100 81 97
290010111 Terry Lee 100 99 100
199144454 Tracey Camp 77 84 84
299226663 Laney Camp 70 74 71
434401929 Skyler Camp 78 81 82
928441032 Jess Forester 85 80 82
928441032 Chris Forester 97 94 89
avez-vous essayé S2 + S3? – John3136
Non. Vous pouvez absolument ajouter trois entiers; Cela signifie simplement que toutes vos variables ne sont pas des entiers. –
À l'avenir, d'ailleurs, n'oubliez pas d'inclure toutes les données nécessaires pour reproduire une erreur dans la question elle-même, plutôt que de demander à quiconque veut tester leur réponse de construire un fichier de données correspondant à votre format. –