標籤:算數 計算 運算式 linux 指令碼
#/bin/bash
在進行shell指令碼編程之前一定要在指令碼的開頭加上上頭這一句話,並且要頂著頭寫,前頭不能有空格和空行。這句話的意思是告訴系統用哪一種shell來執行此指令碼。如果沒有這句話就有可能發生一些意想不到的錯誤。
接下來說一說在shell指令碼中或命令列中如何進行算數運算。也許你已經發現,因為shell中的變數的格式都為字元類型,所以如果只是簡單的讓一個變數去等於一個運算式的話,那麼當輸出此變數的時候輸出的還是哪個運算式,而並不是運算式所得出來的結果,比如:
~]$ a=1+2 ~]$ echo $a1+2
我們想讓a=3,但是當我們使用echo把a這個變數顯示出來的時候卻得到的是字串“1+2”。
那麼當我們想要變數a等於3的時候應該怎麼做呢?
此時有以下幾種方法:
1.使用命令let就能得到想要的結果了,格式為:let VAR=算術運算式
~]$ let a=1+2 ~]$ echo $a3
除了加法,簡單的算數運算還有減法、乘法、除法、模數和次冪。當然,let的功能並不只有這些,基本上我們可以想到的運算式都可以使用這個命令來進行運算,比如自加、自減等運算:
let B+=2 等同於 let B=b+2let B-=2 等同於 let B=B-2let B*=2 等同於 let B=B*2let B/=2 等同於 let B=B/2let B%=2 等同於 let B=B%2
當變數和兩個連續的加號或減號在一起連用就是自加一,但是會有前後的區別,比如:
1)當變數在前時,變數a先將值賦給變數b,然後自加一:
~]$ a=2 ~]$ let b=a++ ~]$ echo $b2 ~]$ echo $a3
2)當變數在後時,變數a先自加一,然後將值賦給變數b:
~]$ a=2 ~]$ let b=++a ~]$ echo $b3 ~]$ echo $a3
同理:當運算子為“-”時也是如此。
2.VAR=$[算術運算式],格式為:SUM=$[C+B]相當於$[$C+$B],中括弧裡可以是變數也可以直接是一個運算式,比如
~]$ echo $b3 ~]$ echo $a3 ~]$ echo $[a+b]6或 ~]$ echo $((1+2))3
3.VAR=$((算術運算式)),這種方法和上一種方法基本一樣,但是注意,小括弧必須為兩個,當只有一個小括弧的時候是命令的引用。
4.expr ARGU1 ARGU2 ARGU3 ARGU1和ARGU3 必須是數值,ARGU2是運算子,且每個參數之間要用空格隔開,否則不能輸出正常的結果,比如:
~]$ expr 1+21+2 ~]$ expr 1 + 23
5.echo “算術運算式” | bc
這種方法是利用管道線將一個算數運算式送過bc命令
比如:
~]$ echo "1+2" | bc3
shell指令碼編程之算數運算