shell指令碼編程之算數運算

來源:互聯網
上載者:User

標籤:算數   計算   運算式   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指令碼編程之算數運算

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.