如何使用expr进行小数乘法?执行expr 1.2 * 13报错的语法问题
问题分析与解决:
expr 1.2 * 13 执行报错 你的命令报错主要有两个原因:
通配符被shell展开,导致参数混乱
在shell环境中,*是通配符,会匹配当前目录下所有非隐藏文件名。如果你的当前目录存在名为12的文件,*会被自动替换成这个文件名,实际执行的命令就变成了expr 1.2 12 13,完全不符合expr的运算语法,因此触发syntax error。
解决这个问题需要对*进行转义,要么加反斜杠写成\*,要么用单引号包裹运算符:'*'。expr不支持浮点数运算
即使解决了通配符的问题,expr本身仅支持整数运算,无法处理1.2这类浮点数,执行后依然会报错。如果需要进行浮点数乘法运算,推荐使用bc或awk工具:- 使用
bc的示例:echo "1.2 * 13" | bc -l - 使用
awk的示例:awk 'BEGIN{print 1.2 * 13}'
- 使用
内容的提问来源于stack exchange,提问作者Allan Xu
相关产品推荐
相关产品推荐

