我正试图从中获取一个浮点数:
totalmark=$(expr $sum / $subjects )
这是对的吗?
答案 0 :(得分:10)
bash不支持浮点数,使用awk或bc / dc
例如awk
totalmark=$(awk 'BEGIN{print $sum / $subjects}')
或bc
totalmark=$(echo "scale=2;$sum/$subjects"|bc)
如果您可以使用除bash之外的其他shell,请尝试使用zsh或ksh
$ zsh -c 'echo $((4/1.3))'
3.0769230769230766
$ ksh -c 'echo $((4/1.3))'
3.07692307692307692
答案 1 :(得分:5)
我不认为bash具有浮点功能。你可以尝试:
echo "$sum/$subjects" | bc -l
答案 2 :(得分:3)
Bash不支持浮点运算。请改为bc
。
答案 3 :(得分:2)
totalmark=$(echo "scale=4;$sum/$subjects"|bc)
顺便说一下,三个答案说Bash不支持浮点运算。虽然这是真的,expr
是一个外部程序(/usr/bin/expr
对我来说),特别是在这种情况下它不支持浮点数。