Shell中的運算子

來源:互聯網
上載者:User

標籤:shell   算術運算   expr   let   


    Shell中也可以實現基本算術運算,以及位元運算。

    我們總結起來有如下幾點:

    1)基本的算術運算子:+、-、*、/、**都支援,最後的**是冪運算;

    2)算術運算要和一些命令結合才能使用,如expr`...`命令,$((...))命令,$[...]命令,let命令,注意:expr後面是反引號;

    3)一定要注意所有運算子兩邊都要有空格,比如result=`expr 2 + 3`就是正確的,如果是result=`expr 2+3`就是錯誤的!其餘的運算子也是需要空格隔開!!

    4)運算公式中的括弧運算、乘法運算一定要加轉移符斜杠,即result=`expr \( 2 + 3 \) \* 5`才正確,除法運算不需要;

    5)expr不可以做冪運算;

#-----------------------------/chapter4/ex4-28.sh------------------#! /bin/sh#計算2和100的差,即-98result=`expr 2 - 100`echo "$result"#計算2和100的和,即102result=`expr 2 + 100`echo "$result"#計算2和5的乘積,即10,乘號一定要加轉移符反斜線result=`expr 2 \* 5`echo "$result"#計算24和8的商,即3result=`expr 24 / 8`echo "$result"#先計算2和6的差,然後再乘以12,即-48,括弧一定要加轉移符反斜線result=`expr \( 2 - 6 \) \* 12`echo "$result"#錯誤的文法result=`expr 2+5`echo "$result"#錯誤的文法result=`expr 2-4*9`echo "$result"#錯誤的文法result=`expr 1-(4-7)`echo "$result"

    6)使用$((...))也可以完成演算法書運算,而且不需要對運算子和括弧做轉義處理!也不需要嚴格規定運算子兩端加空格,空格可加可不加。如下:

#-----------------------------/chapter4/ex4-29.sh------------------#! /bin/sh#緊湊格式,計算3和6的和result=$((3+6))echo "$result"#鬆散格式,計算3和9的和result=$(( 3 + 9 ))echo "$result"#計算3和6的乘積reuslt=$(( 3 * 6 ))echo "$result"#計算7和5的商result=$(( 7 / 5 ))echo "$result"#計算8和3的餘數result=$(( 8 % 3 ))echo "$result"#複合運算result=$(( ( 1-4 ) * 5 ))echo "$result"

    所以,使用$((...))的形式更適合做算術運算。

    7)使用$[...]的形式和上面$((...))的形式一樣,較常用;

#-----------------------------/chapter4/ex4-30.sh------------------#! /bin/sh#加法運算result=$[4+5]echo "$result"#複合運算result=$[(1+2)*3]echo "$result"#冪運算result=$[ 2 ** 4 ]echo "$result"

    8)let也可以實現算術運算。let後面直接接運算運算式,運算式中的變數不需要加$,直接使用,如下:

#-----------------------------/chapter4/ex4-31.sh------------------#! /bin/sh#定義變數n=10#加法運算let n=n+1echo "$n"#乘法運算let n=n*10echo "$n"#冪運算let n=n**2echo "$n"

    9)除了基本運算髮之外,Shell還支援符合算術符:+=、-=、*=、/=、%=,以及位元運算符:<<、>>、&、|、~、^、<<=、>>=、&=、|=、^=,還有自增++、自減--運算;

  

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.