Bash:评估一个数学术语?

hhh*_*hhh 38 math bash evaluation sh

echo 3+3
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Bash中评估这样的表达式,在本例中为6?

Dan*_*tta 29

expr 是标准方式,但它只处理整数.

bash有几个扩展,它们只处理整数:

$((3+3))  returns 6
((3+3))   used in conditionals, returns 0 for true (non-zero) and 1 for false
let 3+3   same as (( ))
Run Code Online (Sandbox Code Playgroud)

let并且(( ))可以用于分配值,例如

let a=3+3
((a=3+3))
Run Code Online (Sandbox Code Playgroud)

对于浮点,你可以使用 bc

回声3 + 3 | 公元前


gho*_*g74 16

在诸如zsh/ksh之类的shell中,你可以使用浮点数来表示数学.如果你需要更多的数学能力,可以使用像bc/awk/dc

例如

var=$(echo "scale=2;3.4+43.1" | bc)
var=$(awk 'BEGIN{print 3.4*43.1}')
Run Code Online (Sandbox Code Playgroud)

看看你想做什么

awk '{printf "%.2f\n",$0/59.5}' ball_dropping_times >bull_velocities
Run Code Online (Sandbox Code Playgroud)


cod*_*ict 6

使用可以使用expr命令:

expr 3 + 3
Run Code Online (Sandbox Code Playgroud)

要将结果存储到变量中,您可以执行以下操作:

sum=$(expr 3 + 3)
Run Code Online (Sandbox Code Playgroud)

要么

sum=`expr 3 + 3`
Run Code Online (Sandbox Code Playgroud)