带变量的 bash 算术表达式

问题描述 投票:0回答:2

我在处理 bash 文件(unix 文件 .sh)中的算术表达式时遇到问题。

我有变量“total”,它由几个用空格分隔的数字组成,我想计算它们的总和(在变量“dollar”中)。

#!/bin/bash
..
dollar=0
for a in $total; do
  $dollar+=$a
done

我知道我遗漏了算术括号中的一些内容,但我无法让它与变量一起使用。

bash arithmetic-expressions
2个回答
7
投票

将算术运算封装在

((...))
内:

dollar=0
for a in $total; do
  ((dollar += a))
done

6
投票

在 Bash 中执行算术运算的方法有很多种。其中一些是:

dollar=$((dollar + a))           # modern: in-process, POSIX-defined
((dollar += a))                  # modern: in-process, non-POSIX bash extension
dollar=$(expr "$dollar" + "$a")  # legacy: out-of-process, slow, POSIX-defined
let "dollar += $a"               # legacy: pre-POSIX ksh legacy

您可以在wiki上看到更多内容。如果您需要处理非整数值,请使用外部工具,例如 bc

© www.soinside.com 2019 - 2024. All rights reserved.