内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

shellscripts之算數(shù)運算詳解-創(chuàng)新互聯(lián)

算數(shù)運算符如下:

shell  scripts之算數(shù)運算詳解

創(chuàng)新互聯(lián)建站總部坐落于成都市區(qū),致力網(wǎng)站建設(shè)服務(wù)有網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)絡(luò)營銷策劃、網(wǎng)頁設(shè)計、網(wǎng)站維護、公眾號搭建、重慶小程序開發(fā)公司、軟件開發(fā)等為企業(yè)提供一整套的信息化建設(shè)解決方案。創(chuàng)造真正意義上的網(wǎng)站建設(shè),為互聯(lián)網(wǎng)品牌在互動行銷領(lǐng)域創(chuàng)造價值而不懈努力!

運算操作符與運算命令:

shell  scripts之算數(shù)運算詳解

1、雙小括號“( ( ) )”數(shù)值運算命令

雙小括號“ ( ( ) ) ”的作用是進行數(shù)值運算與數(shù)值比較,它的效率高,用法靈活,是經(jīng)常被采用的運算操作符,其操作方法如下:

shell  scripts之算數(shù)運算詳解

執(zhí)行echo$((a++))和echo$((a--))命令輸出整個表達式時,輸出的值即為a的值,表達式執(zhí)行完畢后,會對a進行++、--的運算,而執(zhí)行echo$((++a))和echo$((--a))命令輸出整個表達式時,會先對a進行++、--的運算,然后再輸出表達式的值,即為a運算后的值。

注意:有關(guān)++、--運算的記憶方法:

  • 變量a在運算符之前,輸出表達式的值為a,然后a自增或自減;變量a在運算符之后,輸出表達式會先自增或自減,表達式的值就是自增或自減后a的值。
  • “(())”表達式在命令行執(zhí)行時不需要加$符號,直接使用((6%2))形式即可,但是如果需要輸出,就要加$符,例如:echo$((6%2))。
  • “(())”里的所有字符之間沒有空格、有一個或多個空格都不會影響結(jié)果。

使用舉例:

[root@localhost ~]# echo $(( 6+2 ))    #加法
8
[root@localhost ~]# echo $(( 6-2 ))    #減法
4
[root@localhost ~]# echo $(( 6*2 ))    #乘法
12
[root@localhost ~]# echo $(( 6/2 ))    #除法
3
[root@localhost ~]# echo $(( 6%2 ))    #取余
0
[root@localhost ~]# echo $(( 6**2 ))    #求平方
36
[root@localhost ~]# a=3     #給變量賦值
[root@localhost ~]# echo $(( a++ ))    #先輸出變量值,再+1
3
[root@localhost ~]# echo ${a}     #再查看變量,發(fā)現(xiàn)+1了
4
[root@localhost ~]# echo $(( a-- ))   #先輸出變量值,再-1
4
[root@localhost ~]# echo ${a}    #再查看變量,發(fā)現(xiàn)-1了
3
[root@localhost ~]# echo $(( ++a ))    #先+1,再輸出變量值,輸出的是+1后的值
4
[root@localhost ~]# echo ${a}     #確認變量值
4
[root@localhost ~]# echo $(( --a ))     #先-1,再輸出變量值
3
[root@localhost ~]# echo ${a}      #查看確認
3

2、let運算命令的用法

let賦值表達式的功能等同于“((賦值表達式))”

使用舉例:

[root@localhost ~]# i=1
[root@localhost ~]# echo $i
1
[root@localhost ~]# let i=i+8     #加8
[root@localhost ~]# echo $i      #輸出
9
[root@localhost ~]# let i=i-1     #i-1
[root@localhost ~]# echo $i     #輸出
8
[root@localhost ~]# let i++     #我在shell  script中常使用這種方法,默認+1
[root@localhost ~]# echo $i
9
[root@localhost ~]# let i--       #i-1
[root@localhost ~]# echo $i
8

3、expr命令的用法

作用:

expr(evaluate(求值)expressions(表達式))命令既可以用于整數(shù)運算,也可以用于相關(guān)字符串長度、匹配等的運算處理。

(1)expr用于計算:

[root@localhost ~]# expr 2 + 3
5
[root@localhost ~]# expr 2 \* 3     #*號需要轉(zhuǎn)義后使用
6
[root@localhost ~]# expr 6 / 3
2
[root@localhost ~]# expr 7 % 3
1

在使用expr時需要注意:

  • 運算符及用于計算的數(shù)字左右都至少有一個空格,否則會報錯。
  • 使用乘號時,必須用反斜杠將其進行轉(zhuǎn)義(轉(zhuǎn)為普通字符),因為Shell可能會誤解星號的含義。

(2)expr配合變量計算

[root@localhost ~]# i=5
[root@localhost ~]# i=`expr ${i} + 5`      #需要使用反撇號將其括起來,注意變量和數(shù)字符號兩邊要有空格
[root@localhost ~]# echo ${i}
10

(3)判斷一個變量值或字符串是否為整數(shù)

實現(xiàn)原理是,利用以expr做計算時變量或字符串必須是整數(shù)的規(guī)則,把一個變量或字符串和一個已知的整數(shù)(非0)相加,看命令返回的值是否為0。如果為0,就認為做加法的變量或字符串為整數(shù),否則就不是整數(shù)。

示例1:

[root@localhost ~]# a=2        
[root@localhost ~]# expr ${a} + 5
7
[root@localhost ~]# echo $?       #輸出為0,說明變量a是一個整數(shù)
0
[root@localhost ~]# b=lvjianzhao    #定義一個字符變量
[root@localhost ~]# expr $ + 5    #實際上會直接報錯
expr: 非整數(shù)參數(shù)
[root@localhost ~]# echo $?       #輸出為非0,則表示變量b不是一個整數(shù)
2

示例2:

[root@localhost ~]# vim test.sh 

#!/bin/bash
expr $1 + 4 &> /dev/null
if [ $? -eq 0 ]
        then
          echo int
        else
          echo chars
fi
[root@localhost ~]# sh test.sh aaa    
chars                   #輸出的結(jié)果是字符串
[root@localhost ~]# sh test.sh 34
int               #輸出的結(jié)果是整數(shù)型

示例3:

#!/bin/bash
tuichu(){
        exit 1
}
while true
do
        read -p "pls input:" a
        if [ $a == exit ]
          then
                tuichu              #調(diào)用開頭定義的函數(shù)
        fi
        expr $a + 0 > /dev/null 2>&1
        [ $? -eq 0 ] && echo int || echo chars
done

[root@localhost ~]# sh test.sh     #執(zhí)行腳本
pls input:22             #輸入數(shù)字進行測試
int
pls input:dfdf           #輸入字符進行測試
chars
pls input:exit            #輸入exit,將觸發(fā)函數(shù),而退出腳本,若不定義這個函數(shù),只能通過ctrl+c強制中斷腳本執(zhí)行
chars
[root@localhost ~]#

4、bc計算機的用法

(1)直接在命令模式下輸入bc,按下回車后即可直接使用,如下:

[root@localhost ~]# bc      #輸入bc進入計算機環(huán)境
bc 1.06.95
                                 ........................#省略部分內(nèi)容
1+8         #輸入后按回車即可得到結(jié)果
9
9/3
3
6*2
12

(2)將bc用在命令行下面,以實現(xiàn)運算功能:

[root@localhost ~]# echo 3+4 | bc       #通過echo命令結(jié)合管道符輸出到bc計算機
7
[root@localhost ~]# echo "3.4+5.6" | bc
9.0
[root@localhost ~]# echo "3.2-2.5" | bc
.7
[root@localhost ~]# echo "scale=2;355/113" | bc   #使用scale參數(shù)可以設(shè)置保留的小數(shù)位
3.14
[root@localhost ~]# echo "scale=6;355/113" | bc
3.141592

(3)利用bc配合變量運算:

[root@localhost ~]# i=5
[root@localhost ~]# i=`echo $i+6|bc`    利用echo輸出,通過管道符交給bc,此方法效率較低,一般不使用。
[root@localhost ~]# echo $i
11

提示:根據(jù)bc所具有的特殊性來看,如果是小數(shù),則選擇bc運算沒有問題(更推薦使用awk);若是整數(shù)場景,可用“( ( ) )”、let、expr等。

(4)使用一條命令計算輸出1+2+3....+10的表達式,并計算結(jié)果(使用bc計算機實現(xiàn))

生成1+2+3....+10表達式的方法有:

[root@localhost ~]# seq -s "+" 10           #seq是生成數(shù)字序列,-s是指定數(shù)字序列之間的分隔符
1+2+3+4+5+6+7+8+9+10
[root@localhost ~]# echo {1..10} | tr " " "+"   #生成以空格為間隔的數(shù)字序列,并交給tr將空格替換為+號
1+2+3+4+5+6+7+8+9+10

實現(xiàn)上面需求的多種方法如下:

#使用bc計算
[root@localhost ~]# echo `seq -s "+" 10`=`seq -s "+" 10 | bc`
1+2+3+4+5+6+7+8+9+10=55
#使用(())計算
[root@localhost ~]# echo `seq -s "+" 10`=$((`seq -s "+" 10`))
1+2+3+4+5+6+7+8+9+10=55
#使用expr計算
[root@localhost ~]# echo `seq -s '+' 10`=`seq -s " + " 10|xargs expr`
1+2+3+4+5+6+7+8+9+10=55
使用$[ ] 來計算
[root@localhost ~]# echo `seq -s '+' 10`=$(echo $[ `seq -s '+' 10` ])
1+2+3+4+5+6+7+8+9+10=55

5、awk實現(xiàn)計算功能

利用awk進行運算的效果也很好,適合小數(shù)和整數(shù),特別是命令行計算,尤其是小數(shù),運算很精準,好用。

使用舉例:

[root@localhost ~]# echo "7.7 8.5" |awk '{print ($1-$2)}'
-0.8
[root@localhost ~]# echo "7.7 3.5" |awk '{print ($1-$2)}'
4.2
[root@localhost ~]# echo "358 114" | awk '{print ($1-2)/$2}'
3.12281
[root@localhost ~]# echo "3 8" | awk '{print ($1+3)*$2}'
48

6、declare(同typeset)命令的用法

需要使用typeset定義整數(shù)變量,直接進行計算,這個方法不常用,因為需要定義才能生效。

使用范例:

[root@localhost ~]# declare -i A=20 B=3    #-i參數(shù)可以將變量定義為整型
[root@localhost ~]# A=A+B    #因為已聲明是整型,因此可以直接進行運算了。
[root@localhost ~]# echo $A     #輸出查看
23

7、$[ ]符號的運算

格式基本如下(至于運算符,則和其他的運算工具一樣):

[root@localhost ~]# i=4
[root@localhost ~]# i=$[i+3]
[root@localhost ~]# echo ${i}
7
[root@localhost ~]# echo $[2*3]
6
[root@localhost ~]# echo $[9/3]
3
[root@localhost ~]# echo $[10%3]
1
[root@localhost ~]# echo $[1%3]
1
[root@localhost ~]# echo $[3/2]
1

———————— 本文至此結(jié)束,感謝閱讀 ————————

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文題目:shellscripts之算數(shù)運算詳解-創(chuàng)新互聯(lián)
當前URL:http://www.rwnh.cn/article46/djpeeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)網(wǎng)站制作、小程序開發(fā)、品牌網(wǎng)站制作、網(wǎng)站策劃服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
汽车| 扬中市| 民丰县| 会昌县| 安泽县| 清新县| 静安区| 龙南县| 勐海县| 天峨县| 舒兰市| 鸡泽县| 大竹县| 沙雅县| 克什克腾旗| 子长县| 佛冈县| 永寿县| 榆树市| 湖口县| 碌曲县| 凭祥市| 定边县| 林芝县| 泸西县| 长汀县| 柞水县| 金塔县| 西华县| 鄂托克前旗| 和林格尔县| 大荔县| 曲靖市| 攀枝花市| 家居| 龙山县| 宁城县| 中西区| 高邮市| 甘孜| 盐亭县|