同样
当我使用多个操作符添加超过3个数字时,我有一个问题。(我试过expr, bc,
SUM=$(( $S1 + $S2 + $S3 ))
和许多其他形式,但每当我有3个变量,我得到这个错误。
expr: non-integer argument
expr: syntax error
这是当我用2个变量(工作良好)
#!/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, %sn' "$AVG" "$SID" "$LAST" "$FIRST"
done < "$FILE" | sort
和当我做3个变量(不工作)
#!/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, %sn' "$AVG" "$SID" "$LAST" "$FIRST"
done < "$FILE" | sort
expr: non-integer argument
expr: syntax error
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
shell绝对支持;因此,问题出在数据上。试试以下命令:
s1=1
s2=2
s3=3
echo $(( s1 + s2 + s3 ))
…运行,并显示输出6
,这里。
同样
:
s1=1
s2=2
s3=3
expr "$s1" + "$s2" + "$s3"
…运行,显示输出6
,这里