在虚拟机Linux系统下编写简单的shell脚本,但显示结果说没有乘法命令式怎么回事儿啊?

自己找到答案了: declare -i total=$(echo $firstn*$secon|bc)

在bash里可以用 $(( )) 做算术运算,里面类似C语法,变量名前都不需要加$。
total=$((firstn*secon))

或者用shell内建命令let也可以(推荐这种,不同shell间兼容性好)
let total=firstn*secon

用expr做运算是最通常的方法。不过用起来不方便(乘号还需要转义),容易出错。
total=`expr $firstn \* $secon`

用bc做运算也属于常用方法,但你这样做开销大(管道|会新建shell去运行后面的命令;bc属于外部程序调用,非shell内建命令),不是首选方法,从性能上来讲是这几种方法中最差的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-02
shell里不直接支持算数运算符,给你个例子吧:
a=1
b=2
let "c = a + b"
echo $c
结果就是:3
明白了么?
第2个回答  2013-04-02
。。。。是的 shell里不支持直接运算 你用bc计算器就行
第3个回答  2013-04-02
为啥这么麻烦呢,
let total=firstn*secon
echo $total
就行了吧
相似回答