添加基本​​变量命令

添加基本​​变量命令

命令是..

t=20
s=$t+30

我希望 的输出为echo $s50但我不知道如何编写s=命令以使其执行加法。

答案1

默认情况下,Shell 变量是字符串。有些 shell 支持其他变量类型,但您必须让 shell 知道。

在任何 POSIX 风格的 shell 中(sh除了古老的 Unix 系统、dash、bash、ksh、zsh 等),您可以使用算术展开告诉 shell 在解析变量赋值时执行算术运算。

t=20
s=$((t+30))
echo "$s"

(这里不需要双引号,但是这是一个值得养成的好习惯.)

还可以存储要计算的表达式文本,并在打印时执行算术运算。

t=20
s=$((t+30))
echo "expression: $s; evaluated: $(($s))"

但在算术表达式中使用显式变量替换时要小心:它们被替换为文本,而不是算术子表达式,因此运算符优先级可能看起来很奇怪。

echo "$(($s*2))" # equivalent to $((t+30*2)), so prints 80, not 100

在 bash、ksh 或 zsh 中,您可以使用let或者((…))来执行算术运算。

t=20
let s=t+30
echo "$s"

或者

((t = 20))
((s = t + 30))
echo "$s"

或其变体。

bash、ksh 或 zsh 中的另一种可能性是使用typeset内置将变量声明为整数。然后对它的每个赋值都会执行算术评估。

typeset -i s t
t=20
s=t+30
echo "$s"

答案2

这是一种方法:

t=20  

s=$((t+30))  # or s="$((t+30))"

echo "$s"

答案3

您可以使用命令执行算术运算expr,例如:

t=20
s=$(expr "$t" + 30)
echo "$s"

在您的终端上输入man expr以获取更多信息。

相关内容