SHELL指令碼的文法知識——數值計算

來源:互聯網
上載者:User

標籤:

①$[]

  $[ $a operator $b ]

  例: a=2;b=3;

     echo $[ $a + $b]   # 5

     echo $[$a-$b]  #-3

     echo $[++$a-$b]  #0

     c=$[$a+$b]  # √ c=6

     d=$[a+b]  # 6

  備忘:除了自加自減運算子其他都支援;只能進行整數運算;++在運算元前面時不會報錯也不會自加;$[]會輸出運算結果

②let

  let a=b+c

  例:a=1;b=2;

    let c=a+b;echo $c  # 3

    let c=++a+b;echo $c  # 4

    c=let a+b  # × let不會輸出計算結果

    echo `let a+b`  # × 

  備忘:幾乎支援所有運算子;運算式中的變數不加$;一般情況下運算式不用加雙引號,但是如果運算式中有bash關鍵字則需加上;只能進行整數運算;let 不會輸出運算結果,賦值需要在運算式中進行;bash內建命令

③[$](( ))

  例: 

    a=3;

    ((b=a+2));echo $b  # 5

    echo ((a+5)) 或者 c=((a+3))  # -bash: syntax error near unexpected token `(‘

    echo $((a+5)) 或者 c=$((a+3));echo $c  # 8 或 6

  備忘:用法與let完全相同;如果前面有$符號,則結果輸出,否則結果不輸出

④bc

  例:

    f=`echo 3+1|bc`;echo $f  # 4

    touch f;echo 3+4 > f;cat f |bc  # 7

  備忘:支援浮點數計算;支援除位元運算之外的所有運算;通過scale進行精度設定

⑤expr

  例:

    a=3;

    b=`expr $a + 3`;echo $b  # 6

  備忘:需要對部分操作符進行轉義;操作符與運算元之間需用空格隔開;只支援整數運算

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.