麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Linux Shell > 正文

Shell編程之變量數值計算方法示例

2020-07-27 18:46:25
字體:
來源:轉載
供稿:網友

算術運算符

如果要執行算術運算符,就離不開各種運算符號,和其他編程語言類似,shell也有很多算術運算符。在任何一門形式的語言中均會存在算術運算的情況,Shell常見的運算符如下所示:

運算符 含義
+ - * / % 加 減 乘 除 求余
** 冪運算
++ -- 自增 自減
&& || ! 與(and) 或(or) 非(取反)
< <= > >= == != 小于 小于等于 大于 大于等于 等于 不等于
<< >> 左移位 右移位
~ | & ^ 按位取反 按位異或 按位與 按位或
= += -= *= /= %= 如a+=1與a=a+1相同

算術運算命令 

運算命令 含義
(()) 整數運算,效率很高
let 整數運算,類似于(())
expr 整數運算,另外還有很多額外功能
bc Linux中的計算器,適合整數及小數運算
$[] 整數運算
awk 既可用于整數運算,也可用于小數運算
declare 定義變量值和屬性,-i 參數可以用于定義整型變量并進行運算

數值運算用法

(())用法

雙小括號常用于數值運算和數值比較,因其效率很高,用法靈活,因此是常用的運算之一。

示例 含義 備注
((i=i+1)) 運算后并進行賦值,即先進行i+1計算并將該值賦值給i 只能使用echo ((i+1))
((2>1&&8>3)) 進行比較后再進行邏輯運算 常用于條件判斷
echo $((4+2)) 直接進行計算并輸出結果

(())用法示例

[root@localhost ~]# echo $((90-12));echo $((80+12)) # 基本運算7892[root@localhost ~]# ((a=100))[root@localhost ~]# ((a*=2))[root@localhost ~]# echo $a # 輸出運算結果200[root@localhost ~]# ((a=100+2**10-200%100)) # 復雜運算[root@localhost ~]# echo $a1124[root@localhost ~]# a=$((50**2*2+2500)) # 運算并進行賦值[root@localhost ~]# echo $a7500[root@localhost ~]# a=100[root@localhost ~]# echo $((a++));echo $((++a)) # 自增運算100102[root@localhost ~]# echo $((a**2))10404[root@localhost ~]# echo $((2==2)) # 比較運算1   # 1:代表結果為真[root@localhost ~]# echo $((2>2))0   # 0:代表結果為假

++/--:如果++/--在變量前面,則代表先進行運算再輸出結果,如果++/--在變量后面,則先輸出結果再進行運算
(()):在執行命令時不需要添加,直接使用((4+3))即可,如果輸出進行變量賦值,則需要添加,直接使用((4+3))即可,如果輸出進行變量賦值,則需要添加,如使用a=$((4+3))

(())中所有字符中有無空格均不受影響

let用法

let的語法格式如下所示:

let var=value

let用法示例

[root@localhost ~]# a=8[root@localhost ~]# b=9[root@localhost ~]# c=$a+$b[root@localhost ~]# echo $c8+9  # 進行字符串連接[root@localhost ~]# let c=$a+$b[root@localhost ~]# echo $c17  # 進行相加

let let c=a+a+b等同于((c=a+a+b))

expr用法

expr的語法格式如下所示:

expr 表達式

expr用法示例

[root@localhost ~]# expr 4+8; expr 2*54+82*5[root@localhost ~]# expr 4 + 8; expr 2 /* 5 # 注意空格1210[root@localhost ~]# a=100[root@localhost ~]# b=200[root@localhost ~]# c=`expr $a + $b`[root@localhost ~]# echo $c300[root@localhost ~]# a=2[root@localhost ~]# b=5[root@localhost ~]# c=`expr $a /* $b`[root@localhost ~]# echo $c10

使用expr的注意事項如下所示:
運算符與計算項之間左右間必須要有一個空格,否則會出現報錯
使用*需要進行轉義符

bc用法

bc是Linux中的計算器,可作為命令行計算工具使用

bc用法示例

[root@localhost ~]# bcbc 1.06.95Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.This is free software with ABSOLUTELY NO WARRANTY.For details type `warranty'.1+231.0369+2.0147893.051689[root@localhost ~]# echo 100+200 | bc # 通過管道進行計算300[root@localhost ~]# a=250[root@localhost ~]# b=360[root@localhost ~]# c=`echo $a + $b | bc`[root@localhost ~]# echo $c610

awk用法示例

[root@localhost ~]# echo "12.36 12.36" | awk '{print $1+$2}'24.72[root@localhost ~]# echo "12.36 12.36" | awk '{print $1*$2+$2}'165.13[root@localhost ~]# echo "12.36 12.36" | awk '{print $1*($2+$2)}'305.539[root@localhost ~]# echo "10 100" | awk '{print $1*($2+$2)}'2000

declare用法

declare的語法格式如下所示:

declare -i var=value

declare用法示例

[root@localhost ~]# declare -i a=120 b=130[root@localhost ~]# a=a+b  #因為已經申明為整數,可以直接進行運算[root@localhost ~]# echo $a250

$[]用法示例

[root@localhost ~]# a=120[root@localhost ~]# b=1290[root@localhost ~]# a=$[a+b][root@localhost ~]# echo $a1410[root@localhost ~]# echo $[5/3]1[root@localhost ~]# echo $[5%3]2

read用法示例

[root@localhost ~]# read -t 20 -p "Input 3 number:" a b cInput 3 number:1 2 3[root@localhost ~]# echo $a $b $c # 通過用戶輸入傳遞變量賦值1 2 3

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久小视频 | 九草在线视频 | 91精品视频在线看 | 高潮激情aaaaa免费看 | 666sao| 成人毛片100免费观看 | 在线a毛片| 毛片电影在线看 | 粉嫩一区 | 性猛交ⅹxxx乱巴西 欧美日韩1区2区3区 | 欧美性色生活片免费播放 | 黄色av一区二区三区 | 逼片| 亚洲精品午夜国产va久久成人 | 伊人亚洲精品 | 欧美一级精品片在线看 | av在线播放电影 | 日本在线视频一区二区三区 | 久久精品亚洲欧美日韩精品中文字幕 | 久久久久久久.comav | 成人免费一区二区三区视频网站 | 5xsq在线视频 | 天天草天天干天天 | 国产精品自在线拍 | 欧美城网站地址 | 国产亚洲综合精品 | 91av在线免费观看 | 国产羞羞视频在线免费观看 | 亚洲精品在线观看免费 | 国产精品嘿咻嘿咻在线播放 | 美女毛片儿 | 一级黄色电影网站 | 爽爽淫人综合网网站 | 久久久一区二区三区精品 | 在线视频 亚洲 | 国产精品久久久免费观看 | 逼片视频| 欧美精品成人一区二区在线观看 | 国产日韩在线 | 在线看成人av | 日本aaa一级片 |