1. 程式人生 > >shell學習總結之算術運算方法

shell學習總結之算術運算方法

shell算術運算方法總結.sh

#! bin/bash
# -------------------------------------------------------------------------------
# 檔名:  shell算術運算方法總結.sh
# 版 本:   1.0
# 建立日期: 2014/02/11
# 描 述:   算術運算是指加法(+), 減法(-),乘法(*),整除(/), 求餘(%)四種運算,可以通過新增括號改變優先順序
# 作 者:   畢小朋
# 郵 箱:   [email protected]
# 博 客:   http://blog.csdn.net/wirelessqa
# -------------------------------------------------------------------------------


function use_let()
{
    echo "=================== 使用let命令進行算術運算 =================== "
    echo ""
    echo "# 注意:等號右邊以及運算子和括號的兩邊都不能有空格"
    echo ""

    let result=4+2  
    echo "let result=4+2 #加 <- $result"

    let result=4-2
    echo "let result=4-2 #減 <- $result"

    let result=4*2
    echo "let result=4*2 #乘 <- $result"

    let result=4/2
    echo "let result=4/2 #除 <- $result"

    let result=4%2
    echo "let result=4%2 #求餘 <- $result"

    let result=(4-2)*2
    echo "let result=(4-2)*2 #改變優先順序 <- $result"   
    echo ""
}

function use_expr()
{
    echo "=================== 使用expr命令進行算術運算 =================== "
    echo ""
    echo "# 注意:"
    echo "# 1.乘號(*), 左括號( ( ) , 右括號( ) )必須使用反斜槓(\)轉義。"
    echo "# 2.expr右邊以及運算子和括號的兩邊必須有空格; 如果採用緊湊的寫法(緊湊格式可以不對*, (, )進行轉義), 則返回算術表示式."
    echo ""

    result=`expr 4 + 2`
    echo "\`expr 4 + 2 \` #加 <- $result"

    result=`expr 4 - 2`
    echo "\`expr 4 - 2 \` #減 <- $result"

    result=`expr 4 \* 2`
    echo "\`expr 4 \* 2 \` #乘 <- $result"

    result=`expr 4 / 2`
    echo "\`expr 4 / 2 \` #除 <- $result"

    result=`expr 4 % 2`
    echo "\`expr 4 % 2 \` #求餘 <- $result"

    result=`expr \( 4 - 2 \) \* 2`
    echo "\`expr \( 4 - 2 \) \* 2\` #改優先順序 <- $result" 

    echo ""
}

function use_brackets()
{
    echo "=================== (( ... ))進行算術運算 ==================="
    echo ""
    echo "注意:這種寫法無需對運算子和括號做轉義處理,也可以採用鬆散或緊湊的格式."
    echo ""
    result=$((4+2))
    echo "result=\$((4+2)) #加 <- $result"

    result=$((4-2))
    echo "result=\$((4-2)) #減 <- $result"

    result=$((4*2))
    echo "result=\$((4*2)) #乘 <- $result"

    result=$((4/2))
    echo "result=\$((4/2)) #除 <- $result"

    result=$(( 4 % 2 ))
    echo "result=\$(( 4 % 2 )) #求餘 <- $result"

    result=$(( ( 4 - 2 ) * 2 ))
    echo "result=\$(( ( 4 - 2 ) * 2 )) #加 <- $result"


    echo ""
}

use_let
use_expr
use_brackets

執行結果:

[email protected] Shell備忘錄$ bash shell算術運算方法總結.sh
=================== 使用let命令進行算術運算 ===================

# 注意:等號右邊以及運算子和括號的兩邊都不能有空格

let result=4+2 #加 <- 6
let result=4-2 #減 <- 2
let result=4*2 #乘 <- 8
let result=4/2 #除 <- 2
let result=4%2 #求餘 <- 0
let result=(4-2)*2 #改變優先順序 <- 4

=================== 使用expr命令進行算術運算 ===================

# 注意:
# 1.乘號(*), 左括號( ( ) , 右括號( ) )必須使用反斜槓(\)轉義。
# 2.expr右邊以及運算子和括號的兩邊必須有空格; 如果採用緊湊的寫法(緊湊格式可以不對*, (, )進行轉義), 則返回算術表示式.

`expr 4 + 2 ` #加 <- 6
`expr 4 - 2 ` #減 <- 2
`expr 4 \* 2 ` #乘 <- 8
`expr 4 / 2 ` #除 <- 2
`expr 4 % 2 ` #求餘 <- 0
`expr \( 4 - 2 \) \* 2` #改優先順序 <- 4

=================== (( ... ))進行算術運算 ===================

注意:這種寫法無需對運算子和括號做轉義處理,也可以採用鬆散或緊湊的格式.

result=$((4+2)) #加 <- 6
result=$((4-2)) #減 <- 2
result=$((4*2)) #乘 <- 8
result=$((4/2)) #除 <- 2
result=$(( 4 % 2 )) #求餘 <- 0
result=$(( ( 4 - 2 ) * 2 )) #加 <- 4

微信公眾帳號: wirelessqa

wirelessqa

關於作者:

相關推薦

shell學習總結算術運算方法

shell算術運算方法總結.sh #! bin/bash # ------------------------------------------------------------------------------- # 檔名: shell算術運算方法總結.sh #

Linux Shell編程算術運算

Linux Shell編程的簡單操作+ 加- 減* 乘/ 除** 次方% 取余這些運算符號在一些場景下,需要轉義。比如說在通配符的場景下運算必須是兩個括號或者一個中括號let 運算後不顯示結果 而且需要一個變量來保存計算結果常規的運算符號不好使如果不想使用let 可以使用兩個括號 或者一個中括號expr

shell學習筆記數值運算與運算子

declare宣告變數型別 格式: declare [+/-][選項] 變數名 選項: -:給變數設定型別屬性 +:取消變數的型別屬性 -i:將變數宣告為整數型(integer) -x:將變數宣告為環境變數 -p:顯示指定變數的被宣告的型別 數

MyBatis由淺入深學習總結二:MyBatis解決Java實體類和資料庫表字段不一致方法總結

在此,首先說明一點任何永續性框架都需要解決一個問題,那就是Java實體類的欄位一般來說基本上會與資料庫表中欄位不一致,那麼它們是如何解決的呢?咱們以Hibernate和SpringJDBC為例說明一下; 1、Hibernate中一般通過XML對映和註解的方式解決不一致問題,

ruby學習總結-----print、puts、p方法的使用

[color=blue][/color][b]print、puts、p三個方法的區別:[/b]print("hello","world")puts("hello","world")p("hello","world")1.print方法在輸出多個以逗號為分隔符的引數時,會在同一

Linux下Shell程式設計算術運算和邏輯比較(數值型別、字串型別、檔案型別)

shell程式設計中的算術運算和邏輯比較,主要根據不同運算物件,採用相應的比較、運算方式。 一、數值型 算術運算 ,以變數自增1為例,+ - * / % 等運算方式同理,運算的方式大體四種: i=`expr $i + 1` let i+=1 , let的操作成員不需要

js學習總結----less常用的方法

width style min code blog com 亮度 cal back 1、color 解析顏色 把代表顏色的字符串轉換為顏色值 @c:‘#000‘ .box{ background:color(@c) } 2、data-uri 把我們需要使用的

Lucene學習總結二:Lucene的總體架構

api 要點 iter 不同 blank 應用 文件 score image Lucene總的來說是: 一個高效的,可擴展的,全文檢索庫。 全部用Java實現,無須配置。 僅支持純文本文件的索引(Indexing)和搜索(Search)。 不負責由其他格式的文件抽取純文

機器學習總結第一章緒論

分享 概率 都是 ack 學習 包含 png 分類 post 機器學習總結之第一章緒論 http://www.cnblogs.com/kuotian/p/6141728.html 1.2基本術語 特征向量:即示例,反映事件或對象在某方面的性質。例如,西瓜的色澤,敲聲。

機器學習總結第二章模型評估與選擇

概率密度函數 列聯表 ext 5.1 ima 其中 bsp 泛化能力 分解 機器學習總結之第二章模型評估與選擇 2.1經驗誤差與過擬合 錯誤率 = a個樣本分類錯誤/m個樣本 精度 = 1 - 錯誤率 誤差:學習器實際預測輸出與樣本的真是輸出之間的差異。 訓練誤差:即

2018.3.29學習總結如何運行一個最簡單的Servlet程序

ati get png aid 父類 eclips 網上 自己 nco 1,我編寫了我的第一個Servlet程序。HelloServlet 繼承自HttpServlet。因此需要導入javax.servlet開頭的一系列包,那麽這些包來自哪裏呢?答案是Tomcat安裝目錄下

多線程學習總結 線程池

code service pla ever pro olt def 原理圖 cte 前言:    本文基於jdk1.8。 前段時間換工作,面試時候每次都會問線程的問題,自己對多線程方面的知識沒有花時間研究過,所以一問到線程就懵了,最近特地買了方騰飛老師的《Java並發編程的

shell編程數值運算

推薦 exp test 優先級 expr 優先 數值運算 小括號 shell編程 declare -r 變量名=變量1+變量2[root@192 test]# aa=11[root@192 test]# bb=22[root@192 test]# declare -i cc

學習總結Linux基礎知識

基礎 bug 引用 hosts 個人版 boot -s 發布 分配 在經過了一段時間的學習之後,不但對之前較模糊的知識點有了一個比較清晰的認識,還學到了一些沒學到的東西。下面對這些知識點做一個總結,一是想對這一階段畫上一個比較完美的句號,二是想把這篇博客當做以後的一個筆記之

C語言學習筆記運算求余

nbsp 位運算 sdn 縮小 .net 一次 得出 ngs 有效 我們都知道,求一個數被另一個數整除的余數,可以用求余運算符”%“,但是,如果不允許使用求余運算符,又該怎麽辦呢?下面介紹一種方法,是通過位運算來求余,但是註意:該方法只對除數是2的N次方冪

Pandas基本功能算術運算、排序和排名

算術運算和資料對齊 Series和DataFrame中行運算和列運算有種特徵叫做廣播 在將物件相加時,如果存在不同的索引對,則結果的索引就是該索引對的並集。自動的資料對齊操作在不重疊的索引處引入了NA值,NA值在算術運算中過程中傳播。 import pandas as pd from pandas im

oracle逐步學習總結oracle分頁查詢(基礎三)

  原創作品,轉載請在文章開頭明顯位置註明出處:https://www.cnblogs.com/sunshine5683/p/10087205.html oracle 的分頁有三種,下面將這三種方式一一列舉,進行分析:   一、根據rowid來分頁   二、根據分

Django學習總結模板templates

- django模板: templates - 模板分為兩個過程: 1, 載入 : loader.get_template('xxx.html') 返回值是一個

Django學習總結--URLS反向解析

URL 與 URI URL : 統一資源定位符 相當於絕對路徑 URI : 統一資源標誌符 相當於相對路徑 - 多個App下URL 的配置方法 工程目錄下的配置 url(r'^App/',views.hello) 這裡需要導包,用alt+enter鍵導包 App專案下

機器學習總結——機器學習專案完整流程

機器學習總結之——機器學習專案的完整流程 1、分析專案需求,明確具體問題   進行一個專案前,首先要做的是要分析專案各個需求,以及明確各個需求所對應的具體問題並將其抽象成一個個數學問題,將專案過程轉換成數學建模過程。   PS:這裡的抽象成數學問題