Shell脚本乘法运算报错:*语法错误或输出*,求技术支援
Shell脚本乘法运算中
*符号的问题解决 核心原因
Shell里的*是通配符,会被自动展开成当前目录下的所有文件名,而非乘法运算符——这就是你遇到语法错误或直接输出*的根本原因。
正确实现方式
整数乘法(Bash原生方式)
用$(( ))包裹算术表达式,*无需转义:
num1=6 num2=4 result=$((num1 * num2)) echo "运算结果:$result"
整数乘法(expr命令)
如果用expr,必须给*加反斜杠转义,避免被Shell解析为通配符:
num1=6 num2=4 result=$(expr $num1 \* $num2) echo "运算结果:$result"
浮点数乘法(bc工具)
需要计算小数时,用bc处理,*可直接使用:
num1=3.7 num2=2.2 result=$(echo "$num1 * $num2" | bc) echo "运算结果:$result"
错误示例修正
- 错误写法(直接使用
*会被解析为通配符):
# 错误!会输出当前目录文件列表或触发语法错误 echo 5*3
- 修正写法:
echo $((5*3)) # 正确输出15
内容的提问来源于stack exchange,提问作者Undergrad Web dev
相关产品推荐
相关产品推荐

