当我在shell中运行如下命令时,它返回一个expr: non-integer argument错误.谁能给我解释一下吗?

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

推荐答案

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

expr $x / $y

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

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

echo $((x / y))

或者:

z=$((x / y))
echo $z

Linux相关问答推荐

在c++编译期间,什么是linux命令,它给出了链接库的路径?

C++调试器如何知道如何在源代码和可执行文件之间映射行?

Docker 不保留 chown 用户设置

Linux TTY 操作顺序

在 bash 中解析变量

树莓派拒绝连接到瓶子服务器

如何在守护进程中使用 popen() 和 pclose() 获取通过管道执行的 shell 命令的正确退出代码?

如果 bash 中已经存在文件名,则创建新文件但添加数字

anon 对 pmap 意味着什么?

未找到框架.NETFramework,Version=v4.7.1的参考程序集

如何判断 Ubuntu 12.04 LTS 上是否安装了多个版本的 PHP?

在使用文件时截断文件 (Linux)

如何在 Ubuntu 12.04 中更改 Jenkins 安装的端口号

如果关键字触发然后执行命令,Shell 脚本来监视日志(log)文件?

如何知道linux调度器时间片?

如何使用 Linux 命令找到我的 shell 版本?

在 Linux 中的特定行向文件添加文本

Bash:在文件中的特定位置插入一行

在 Linux 上更新 PyCharm

为嵌入式 Linux 设备实施更新/升级系统