一尘不染

如何在Linux Shell中对变量进行除法?

linux

当我在外壳中按以下方式运行命令时,它将返回expr: non-integer argument错误。有人可以向我解释一下吗?

$ x=20
$ y=5
$ expr x / y 
expr: non-integer argument

阅读 1422

收藏
2020-06-07

共1个答案

一尘不染

这些变量是外壳变量。要将它们作为参数扩展到另一个程序( expr),您需要使用$前缀:

expr $x / $y

它抱怨的原因是因为它认为您试图对字母字符进行操作( 非整数)

如果使用的是Bash shell,则可以使用表达式语法实现相同的结果:

echo $((x / y))

要么:

z=$((x / y))
echo $z
2020-06-07