shell脚本相乘运算
⑴ 编写一个shell脚本,可以输入2个参数,并将它们的乘积显示出来
#!/bin/sh
echo "please input a"
read a
echo "please input b"
read b
c=$[a*b]
echo "chenji=$c"
⑵ linux中编写一个shell程序,读入一组数字,使用for循环计算该数组数字的乘积。
#!/bin/bash
read-p"请输入一组数字:"-aarray
accumulate=1
fornumin${array[@]}
do
accumulate=$(($accumulate*num))
done
echo"乘积是:"$accumulate
计算读入的一组数字(在同一行输入)的积
⑶ shell 怎么个位相乘
是这样吗?
a=14
b=563
echo $((a%10*(b%10)))
结果是3乘4,等于12。
⑷ linux下shell脚本写一个 简单乘法出错 求解
最后一行是不是少了一个双引号的结束
⑸ 在虚拟机Linux系统下编写简单的shell脚本,但显示结果说没有乘法命令式怎么回事儿啊
在bash里可以用 $(( )) 做算术运算,里面类似C语法,变量名前都不需要加$。
total=$((firstn*secon))
或者用shell内建命令let也可以(推荐这种,不同shell间兼容性好)
let total=firstn*secon
用expr做运算是最通常的方法。不过用起来不方便(乘号还需要转义),容易出错。
total=`expr $firstn \* $secon`
用bc做运算也属于常用方法,但你这样做开销大(管道|会新建shell去运行后面的命令;bc属于外部程序调用,非shell内建命令),不是首选方法,从性能上来讲是这几种方法中最差的。
⑹ 编写一个shell脚本,打印任何数的乘法表
#!/bin/bash
read -p "Please input a integer: " num
for multiplier in {1..9}
do
ret=$((num*multiplier))
echo $num*$multiplier=$ret
done
exit 0
⑺ 刚学shell脚本写了个小 计算器,加减除都可以,乘法不行,哪儿错了
你的问题在:elif [ $fangfa = " \* " ]; 这句并不能判断到“*“乘号;
正确的结果如下:
#!/bin/bash
echo "first number"
read a
echo "fangfa"
read fangfa
echo "second number"
read b
if [ "$fangfa" = "+" ];then
echo $(($a+$b))
elif [ "$fangfa" = "-" ];then
echo $(($a-$b))
elif [ "$fangfa" = "*" ];then
echo $(($a*$b))
elif [ "$fangfa" = "/" ];then
echo $(($a/$b))
fi
===============================================
脚本优化版本:
#!/bin/bash
read -p "input first number: " num1
read -p "input operator: " operator
read -p "input second number: " num2
if [ "$operator" == "+" ];then
echo " num1 + num2 = $(($num1+$num2))"
elif [ "$operator" == "-" ];then
echo "num1 - num2 = $(($num1-$num2))"
elif [ "$operator" == "*" ];then
echo "num1 * num2 = $(($num1*$num2))"
elif [ "$operator" == "/" ];then
echo "num1 / num2 = $(($num1/$num2))"
fi
⑻ 1:编辑shell脚本factorial.sh,计算1到10的阶乘。2:编写shell脚本max.sh,求所有命令行参数中的最大值。
#!/bin/sh
#factorial.sh
factorial_1(){
num=$1
sum=1
for((i=0;i<$num;i++))
do
i=`expr$i+1`
sum=`expr$sum*$i`
done
echo"$num的阶乘是$sum"
}
foriin{1..10}
do
factorial_1$i
done
#!/bin/bash
#max.sh
mp=$*
echo$mp|sed's// /g'|sort-n>uuu.$$
tail-1uuu.$$
rm-f*.$$
#完全手打,忘采纳
⑼ 编写一个shell脚本程序,实现100的阶乘并输出
脚本至少有如下错误:
{j}改为${j}或$j,是要取值的啊
expr语句外面是反引号(键盘上ESC下面那个键)而不是单引号,表示执行命令而不是单纯一个字符串,expr后面的运算符左右两侧要有空格。
if跟[之间是要有空格的,if判断表达式比较符两侧也要有空格,数字跟 [ ]之间要有空格。
我修正了,自己运行成功生成你要的数列了。你自己对比下吧:
#!/bin/bash
#script name prg8.sh
clear
i=1
for ((j=1;j<=98;j++))
do
echo -n "$j,`expr $j + 2`,"
if [ $i -eq 10 ]
then
echo ""
i=1
else
i=$((i+1))
fi
done
echo ""
注释里已经说了,script name prg8.sh,脚本名叫prg8.sh,当然,叫什么名字是你的自由。
⑽ 利用所学的shell命令,写出计算10的阶乘的脚本程序,如何编译如何进行
#!/bin/sh
factorial=1
for a in `seq 1 10 `
do
factorial=`expr $factorial\*$a`
done
echo "10! = $factorial"