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"