欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Shell(())實現(xiàn)對整數(shù)進行數(shù)學運算

 更新時間:2021年03月01日 09:25:49   投稿:zx  
這篇文章主要介紹了Shell(())實現(xiàn)對整數(shù)進行數(shù)學運算,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

雙小括號 (( )) 是 Bash Shell 中專門用來進行整數(shù)運算的命令,它的效率很高,寫法靈活,是企業(yè)運維中常用的運算命令。

注意:(( )) 只能進行整數(shù)運算,不能對小數(shù)(浮點數(shù))或者字符串進行運算。后續(xù)講到的 bc 命令可以用于小數(shù)運算。

Shell (( )) 的用法

雙小括號 (( )) 的語法格式為:
((表達式))

通俗地講,就是將數(shù)學運算表達式放在((和))之間。

表達式可以只有一個,也可以有多個,多個表達式之間以逗號,分隔。對于多個表達式的情況,以最后一個表達式的值作為整個 (( )) 命令的執(zhí)行結果。

可以使用$獲取 (( )) 命令的結果,這和使用$獲得變量值是類似的。

表1:(( )) 的用法

運算操作符/運算命令 說明
((a=10+66)
((b=a-15))
((c=a+b))
這種寫法可以在計算完成后給變量賦值。以 ((b=a-15)) 為例,即將 a-15 的運算結果賦值給變量 c。

注意,使用變量時不用加$前綴,(( )) 會自動解析變量名。
a=$((10+66)
b=$((a-15))
c=$((a+b))
可以在 (( )) 前面加上$符號獲取 (( )) 命令的執(zhí)行結果,也即獲取整個表達式的值。以 c=$((a+b)) 為例,即將 a+b 這個表達式的運算結果賦值給變量 c。

注意,類似 c=((a+b)) 這樣的寫法是錯誤的,不加$就不能取得表達式的結果。
((a>7 && b==c)) (( )) 也可以進行邏輯運算,在 if 語句中常會使用邏輯運算。
echo $((a+10)) 需要立即輸出表達式的運算結果時,可以在 (( )) 前面加$符號。
((a=3+5, b=a+10)) 對多個表達式同時進行計算。

在 (( )) 中使用變量無需加上$前綴,(( )) 會自動解析變量名,這使得代碼更加簡潔,也符合程序員的書寫習慣。

Shell (( )) 實例演示

【實例1】利用 (( )) 進行簡單的數(shù)值計算。

[jb51.net]$ echo $((1+1))
2
[jb51.net]$ echo $((6-3))
3
[jb51.net]$ i=5
[jb51.net]$ ((i=i*2)) #可以簡寫為 ((i*=2))。
[jb51.net]$ echo $i #使用 echo 輸出變量結果時要加 $。
10

【實例2】用 (( )) 進行稍微復雜一些的綜合算術運算。

[jb51.net]$ ((a=1+2**3-4%3))
[c.biancheng.net]$ echo $a
8
[jb51.net]$ b=$((1+2**3-4%3)) #運算后將結果賦值給變量,變量放在了括號的外面。
[jb51.net]$ echo $b
8
[jb51.net]$ echo $((1+2**3-4%3)) #也可以直接將表達式的結果輸出,注意不要丟掉 $ 符號。
8
[jb51.net]$ a=$((100*(100+1)/2)) #利用公式計算1+2+3+...+100的和。
[jb51.net]$ echo $a
5050
[jb51.net]$ echo $((100*(100+1)/2)) #也可以直接輸出表達式的結果。
5050

【實例3】利用 (( )) 進行邏輯運算。

[jb51.net]$ echo $((3<8)) #3<8 的結果是成立的,因此,輸出了 1,1 表示真
1
[jb51.net]$ echo $((8<3)) #8<3 的結果是不成立的,因此,輸出了 0,0 表示假。
0
[jb51.net]$ echo $((8==8)) #判斷是否相等。
1
[jb51.net]$ if ((8>7&&5==5))
> then
> echo yes
> fi
yes

最后是一個簡單的 if 語句的格式,它的意思是,如果 8>7 成立,并且 5==5 成立,那么輸出 yes。顯然,這兩個條件都是成立的,所以輸出了 yes。

【實例4】利用 (( )) 進行自增(++)和自減(--)運算。

[jb51.net]$ a=10
[jb51.net]$ echo $((a++)) #如果++在a的后面,那么在輸出整個表達式時,會輸出a的值,因為a為10,所以表達式的值為10。
10
[jb51.net]$ echo $a #執(zhí)行上面的表達式后,因為有a++,因此a會自增1,因此輸出a的值為11。
11
[jb51.net]$ a=11
[jb51.net]$ echo $((a--)) #如果--在a的后面,那么在輸出整個表達式時,會輸出a的值,因為a為11,所以表達式的值的為11。
11
[jb51.net]$ echo $a #執(zhí)行上面的表達式后,因為有a--,因此a會自動減1,因此a為10。
10
[jb51.net]$ a=10
[jb51.net]$ echo $((--a)) #如果--在a的前面,那么在輸出整個表達式時,先進行自增或自減計算,因為a為10,且要自減,所以表達式的值為9。
9
[jb51.net]$ echo $a #執(zhí)行上面的表達式后,a自減1,因此a為9。
9
[jb51.net]$ echo $((++a)) #如果++在a的前面,輸出整個表達式時,先進行自增或自減計算,因為a為9,且要自增1,所以輸出10。
10
[jb51.net]$ echo $a #執(zhí)行上面的表達式后,a自增1,因此a為10。
10

本教程假設讀者具備基本的編程能力,相信讀者對于前自增(前自減)和后自增(后自減)的區(qū)別也非常清楚,這里就不再贅述,只進行簡單的說明:

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

【實例5】利用 (( )) 同時對多個表達式進行計算。

[jb51.net]$ ((a=3+5, b=a+10)) #先計算第一個表達式,再計算第二個表達式
[jb51.net]$ echo $a $b
8 18
[jb51.net]$ c=$((4+8, a+b)) #以最后一個表達式的結果作為整個(())命令的執(zhí)行結果
[jb51.net]$ echo $c
26

到此這篇關于Shell(())實現(xiàn)對整數(shù)進行數(shù)學運算的文章就介紹到這了,更多相關Shell(()) 整數(shù)運算內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 檢查linux網(wǎng)絡狀態(tài)的兩個腳本

    檢查linux網(wǎng)絡狀態(tài)的兩個腳本

    檢查linux網(wǎng)絡狀態(tài)的兩個腳本,包括通過定時收發(fā)email檢測網(wǎng)絡連通性、定時檢測網(wǎng)絡狀態(tài)通過email發(fā)送,有需要的朋友可以參考下
    2013-02-02
  • 反彈shell升級全交互式shell

    反彈shell升級全交互式shell

    本文主要介紹了反彈shell升級全交互式shell,以提高遠程控制能力,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-01-01
  • awk中實現(xiàn)ord函數(shù)功能

    awk中實現(xiàn)ord函數(shù)功能

    這篇文章主要介紹了awk中實現(xiàn)ord函數(shù)功能,ord函數(shù)用來將字符轉化對應的ascii碼,本文給出awk中的ord函數(shù)實現(xiàn)方法,需要的朋友可以參考下
    2014-08-08
  • linux服務器安全加固shell腳本代碼

    linux服務器安全加固shell腳本代碼

    有時候安裝完服務器以后,需要一些安全設置,這段腳本就是為了安全加固所寫,需要的朋友可以參考下
    2013-06-06
  • Linux 中LVS NAT 配置步驟的詳解

    Linux 中LVS NAT 配置步驟的詳解

    這篇文章主要介紹了Linux 中LVS NAT 配置步驟的詳解的相關資料,這里列出詳細的實現(xiàn)步驟,需要的朋友可以參考下
    2017-08-08
  • 判斷輸入的日期是否正確的shell腳本

    判斷輸入的日期是否正確的shell腳本

    這篇文章主要介紹了判斷輸入的日期是否正確的shell腳本,需要的朋友可以參考下
    2016-08-08
  • Shell函數(shù)返回值方式

    Shell函數(shù)返回值方式

    本文主要介紹了Shell函數(shù)返回值方式,主要介紹了兩種返回方式,分別介紹了場景的使用和區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2022-08-08
  • Linux文件查找和解壓縮命令詳解

    Linux文件查找和解壓縮命令詳解

    這篇文章主要介紹了Linux文件查找和解壓縮命令,文件搜索查找包括按照名字搜索,按照文件所屬`主用戶`搜索,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • hive-shell批量命令執(zhí)行腳本的實現(xiàn)方法

    hive-shell批量命令執(zhí)行腳本的實現(xiàn)方法

    今天小編就為大家分享一篇hive-shell批量命令執(zhí)行腳本的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • linux系統(tǒng)下用.sh文件執(zhí)行python命令的方法

    linux系統(tǒng)下用.sh文件執(zhí)行python命令的方法

    這篇文章主要給大家介紹了關于linux系統(tǒng)下用.sh文件執(zhí)行python命令的相關資料,文中通過實例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友可以參考下
    2022-07-07

最新評論